在这里有一些关于编写测试自动化的从MiniTest到Rspec(显然是用Ruby)的讨论。我真的喜欢MiniTest对assert
网页元素的能力,因为它最终会告诉我有关失败的信息,assert $b.link(:text => 'DAM').present?
Rspec有与此相同的东西吗?我想保留这种风格,因为如果可能的话,写出更少的代码行
答案 0 :(得分:1)
Rspec使用expect()与Minitest的断言类似。 expect(actual).to eq(expected)
您可以在https://www.relishapp.com/rspec/处深入了解文档。请注意,在Rspec中测试真相的方法很少(来自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" e.g。
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
答案 1 :(得分:1)
如果您想将Minitest的断言与RSpec一起使用,您可以对其进行配置: