0

我没有找到 Rspecdescribe方法的语法,但找到了一些示例。如果我理解正确,我们可以将describe字符串、类名(例如模型名)以及字符串和类名一起作为参数传递给方法。这三种调用情况有什么区别describe

describe 'string' do
...
end

describe ModelName do
...
end

describe 'string', ModelName do
...
end
4

2 回答 2

4

它不是一个频繁使用的功能(诚然,在我有限的经验中),但如果提供了模块或类名(或者可能是其他正在测试的对象),它describe可以提供subject

class Foo
end

describe Foo do
  it "should be a Foo" do
    subject.should be_a Foo
  end
end

在上面的例子中,通过,给describe一个类名会导致它Foo.newsubject. 而传递字符串"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
于 2013-08-26T11:45:40.097 回答
2

这取决于您要描述的内容。

该描述适用于您和其他使用该代码库的开发人员。

$ rspec --format=documentation spec/

要不就

$ rspec -fd spec/

会出来

string
  ...
ModelName
  ...
string ModelName
  ...
于 2013-08-26T11:24:35.173 回答