![](/img/trans.png)
[英]Rails & Rspec: testing model with methods defined via module extending ActiveSupport::Concern
[英]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.