我没有找到Rspec describe
方法的语法,但找到了一些例子。如果我正确理解,我们可以将describe
方法传递给一个字符串,一个类名(例如模型名),以及一个字符串和类名作为参数。这三个调用describe
的情况有什么区别?Rspec描述方法语法
describe 'string' do
...
end
describe ModelName do
...
end
describe 'string', ModelName do
...
end
我没有找到Rspec describe
方法的语法,但找到了一些例子。如果我正确理解,我们可以将describe
方法传递给一个字符串,一个类名(例如模型名),以及一个字符串和类名作为参数。这三个调用describe
的情况有什么区别?Rspec描述方法语法
describe 'string' do
...
end
describe ModelName do
...
end
describe 'string', ModelName do
...
end
这取决于你想描述的东西。
该说明适用于您和使用该代码库的其他开发人员。
$ rspec --format=documentation spec/
或只是
$ rspec -fd spec/
会出
string
...
ModelName
...
string ModelName
...
它不是一个频繁使用的功能(当然在我有限的经验),但如果能提供一个模块describe
可以养活subject
或类别名称(或大概是其他待测物)
class Foo
end
describe Foo do
it "should be a Foo" do
subject.should be_a Foo
end
end
在上面的示例中,通过describe
的类名已导致它从subject
返回Foo.new
。虽然通过字符串"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
看来这是不推荐,但:https://github.com/rspec/rspec-core/blob/ 7c5d508bebf64c7f00b9d7d63ad1114ef481914c/lib目录/ RSpec的/核心/ memoized_helpers.rb#L36 –