Rspec 方法类似于 MiniTest 'assert'
Rspec method similar to MiniTest 'assert'
这里有一些关于从 MiniTest 更改为 Rspec(显然是 Ruby)以编写测试自动化的讨论。我 真的 喜欢 MiniTest 对 assert
网络元素的能力,因为它会在最后告诉我有关失败的信息,即 assert $b.link(:text => 'DAM').present?
Rspec 有类似的东西吗?我想保持这种风格,因为如果可能的话,写出来的代码行会更少
Rspec 以与 Minitest 的断言类似的方式使用 expect()。 expect(actual).to eq(expected)
您可以在 https://www.relishapp.com/rspec/ . Note that there are few different ways to test the truth in Rspec(from https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers):
深入阅读文档
expect($b.link(:text => 'DAM').present?).to be true # passes if actual == true
expect($b.link(:text => 'DAM').present?).to eq true # passes if actual == true
expect($b.link(:text => 'DAM').present?).to be_truthy # passes if actual is truthy (not nil or false)
如果您在 rspec 上花费大量时间,您还可以为扩展 "be" 使用的常见测试创建自定义匹配器,例如
RSpec::Matchers.define :be_present do
match do |actual|
actual.present?
end
end
expect($b.link(:text => 'DAM')).to be_present # passes if $b.link(:text => 'DAM').present? == true
如果您想将 Minitest 的断言与 RSpec 一起使用,您可以对其进行配置:
这里有一些关于从 MiniTest 更改为 Rspec(显然是 Ruby)以编写测试自动化的讨论。我 真的 喜欢 MiniTest 对 assert
网络元素的能力,因为它会在最后告诉我有关失败的信息,即 assert $b.link(:text => 'DAM').present?
Rspec 有类似的东西吗?我想保持这种风格,因为如果可能的话,写出来的代码行会更少
Rspec 以与 Minitest 的断言类似的方式使用 expect()。 expect(actual).to eq(expected)
您可以在 https://www.relishapp.com/rspec/ . Note that there are few different ways to test the truth in Rspec(from https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers):
expect($b.link(:text => 'DAM').present?).to be true # passes if actual == true
expect($b.link(:text => 'DAM').present?).to eq true # passes if actual == true
expect($b.link(:text => 'DAM').present?).to be_truthy # passes if actual is truthy (not nil or false)
如果您在 rspec 上花费大量时间,您还可以为扩展 "be" 使用的常见测试创建自定义匹配器,例如
RSpec::Matchers.define :be_present do
match do |actual|
actual.present?
end
end
expect($b.link(:text => 'DAM')).to be_present # passes if $b.link(:text => 'DAM').present? == true
如果您想将 Minitest 的断言与 RSpec 一起使用,您可以对其进行配置: