Есть ли способ использовать сопоставление типа «Проверка» в rspec? - PullRequest
0 голосов
/ 11 февраля 2019

До сих пор я использую в своем тестовом фрейме слово «ожидаемо», которое останавливает выполнение, когда оно соответствует условию сбоя.Я хочу что-то вроде, выполнение должно произойти, даже если оно соответствует условию сбоя.Я видел, что в rspec есть средство сравнения Verify, в котором мне нужно унаследовать класс Test :: Unit :: TestCase, но моя проблема в том, что мне нужно средство сравнения в моем файле спецификации, которое не записано подРубиновый класс.

1 Ответ

0 голосов
/ 11 февраля 2019

Нет способа сделать это с RSpec, из коробки.Поскольку Rspec предназначен для тестирования небольших изолированных логик.

При сбое сопоставители Rspec вызывают ошибку, поэтому вы можете заключить сопоставления в спасательный блок.Чтобы удовлетворить ваши потребности, вы можете написать обертку следующим образом:

def report_last(&block)
  begin
    yield
  rescue Exception => e
    puts "Failure: #{e}"
  end
end

В вашем тестовом случае:

describe Calculator do
  it “should add 2 numbers” do
    report_last do
      expect(described_class.new(2, 3).sum)to eq(5)
    end
  end
end
...