使用RSpec 3测试模块

时间:2014-08-13 18:36:54

标签: class testing methods rspec module

我正在努力测试模块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

1 个答案:

答案 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