类似于MiniTest'断言'的Rspec方法

时间:2015-12-14 15:48:01

标签: ruby rspec automated-tests

在这里有一些关于编写测试自动化的从MiniTest到Rspec(显然是用Ruby)的讨论。我真的喜欢MiniTest对assert网页元素的能力,因为它最终会告诉我有关失败的信息,assert $b.link(:text => 'DAM').present?
Rspec有与此相同的东西吗?我想保留这种风格,因为如果可能的话,写出更少的代码行

2 个答案:

答案 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)