簡體   English   中英

RSpec 測試關注 Rails 6

[英]RSpec testing concern with Rails 6

我擔心使用 Kaminari gem,但不知道如何測試它。 我已經閱讀了有關share_examples的信息,但似乎沒有通過 go。

這是我的代碼

module LoadMoreConcern
  extend ActiveSupport::Concern

  protected
  
  def load_more(objects)
    objects.present? ? !objects.last_page? : false
  end

規范/控制器/關注/load_more_concern_spec.rb

require 'rails_helper'

RSpec.shared_examples 'LoadMoreConcern' do |klass|
  describe '#load_more' do
    let_it_be(:talk) { FactoryBot.create(:talk) }

    it "should return false if object is not present or is last page" do
      expect(subject.load_more(talk)).to be false
    end
  end
end

在我的 controller 中,我包含了這個問題

require 'rails_helper'

RSpec.describe TalksController, type: :controller do
  it_behaves_like 'LoadMoreConcern'
end

運行規范時出現此錯誤

An error occurred while loading ./spec/controllers/talks_controller_spec.rb.
Failure/Error: it_behaves_like 'LoadMoreConcern'

ArgumentError:
  Could not find shared examples "LoadMoreConcern"

任何人都知道我應該做什么或可以指出一些資源? 任何幫助表示贊賞。

共享示例不會自動加載。 要么將它添加到你的rails_helper為所有示例加載的某個地方,要么在你需要它的地方明確要求它。

require 'rails_helper'
require 'spec/controllers/concern/load_more_concern_spec.rb'

RSpec.describe TalksController, type: :controller do
  it_behaves_like 'LoadMoreConcern'
end

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM