我找不到Rspec describe
方法的语法,但找到一些例子。如果我正确理解,我们可以将describe
方法传递给字符串,类名(例如,模型名称),以及字符串和类名作为参数。这三种调用情况describe
之间有什么区别?
describe 'string' do
...
end
describe ModelName do
...
end
describe 'string', ModelName do
...
end
答案 0 :(得分:4)
这不是一个使用频繁的功能(诚然,在我有限的经验中),但describe
如果提供了模块或类名(或者可能是其他测试对象),则可以提供subject
class Foo
end
describe Foo do
it "should be a Foo" do
subject.should be_a Foo
end
end
在上面传递的示例中,为describe
提供了一个类名,导致它从Foo.new
返回subject
。而传递字符串"Foo"
不会以相同的方式工作。
另一个例子:
describe [], "an empty array" do
it "should return nil from any index" do
subject[1].should be_nil
end
end
运行它:
$ rspec -f d rspec_describe.rb
[] an empty array
should return nil from any index
Finished in 0.00255 seconds
1 example, 0 failures
答案 1 :(得分:2)
这取决于你想描述的事情。
该描述适用于您和使用该代码库的其他开发人员。
$ rspec --format=documentation spec/
或只是
$ rspec -fd spec/
将会出局
string
...
ModelName
...
string ModelName
...