我正在努力测试模块def self.method
。我发现了一个很棒的帖子here with a very helpful answer。我的代码是:
module MyModule
def self.method
groups = Posts.group :name
end
end
describe Class.new { include MyModule } do
its (:method) { should be_a(ActiveRecord::Relation) }
end
问题是,问题是包括模块,不扩展。作为答案的作者,他用RSpec 2 测试了它。我使用 RSpec 3.0.0 对其进行了测试,唯一有效的方法是该方法是实例的方法。否则我收到以下错误:
undefined method `method' for #<#<Class:0x0000000..>:0x00000006..>
如何测试MyModule.method
?
答案 0 :(得分:1)
可能会让实例和类级别方法混淆。 试试这个以确保它真的在类级方法上进行测试
class MyClass
include MyModule
end
it "should have an active relation on method" do
expect(MyClass.method).to be_a(ActiveRecord::Relation)
end