在rspec中测试模块
在rspec中测试模块的最佳实践是什么? 我有一些模块被包含在少数模型中,现在我只对每个模型进行重复测试(几乎没有区别)。 有没有办法干掉它?
rad方式=>
let(:dummy_class) { Class.new { include ModuleToBeTested } }
或者,您可以使用模块扩展测试类:
let(:dummy_class) { Class.new { extend ModuleToBeTested } }
使用'let'比使用实例变量在before(:each)中定义虚拟类要好,
何时使用RSpec let()?
什么话筒说。 这是一个简单的例子:
模块代码...
module Say
def hello
"hello"
end
end
spec片段...
class DummyClass
end
before(:each) do
@dummy_class = DummyClass.new
@dummy_class.extend(Say)
end
it "get hello string" do
expect(@dummy_class.hello).to eq "hello"
end
对于可以单独测试或嘲笑课程的模块,我喜欢以下几点:
模块:
module MyModule
def hallo
"hallo"
end
end
规格:
describe MyModule do
include MyModule
it { hallo.should == "hallo" }
end
劫持嵌套示例组似乎是错误的,但我喜欢简洁。 有什么想法吗?
链接地址: http://www.djcxy.com/p/59293.html