我沒有找到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 –