如何测试我是否正确地与 mixin 交互?
我有一个 mixin,它提供了一个类似于 named_scope 或 protected_attribute 的类方法。我已经对 mixin 进行了广泛的测试,现在需要测试它所混合的模型是否正确使用它。我不想再次测试整个 mixin,只是我用正确的 args 调用了它。
该模型:
class SomeClass
include MatchMixin
match :name
end
考试:
describe SomeClass do
it { should be_kind_of(MatchMixin) }
it "calls match with :name" do
SomeClass.stubs(:match)
SomeClass.new
SomeClass.should have_received(:match).with(:name) # <= this fails
end
end
混音:
module MatchMixin
extend ActiveSupport::Concern
module ClassMethods
def match(arg)
# lots of awesome code
end
end
end
我已经尝试了我能想到的一切。有什么建议么?