Chciałbym zrobić coś takiego:
some_method.should_raise <any kind of exception, I don't care>
Jak mam to zrobić?
some_method.should_raise exception
... nie działa.
Chciałbym zrobić coś takiego:
some_method.should_raise <any kind of exception, I don't care>
Jak mam to zrobić?
some_method.should_raise exception
... nie działa.
expect { some_method }.to raise_error
Składnia RSpec 1:
lambda { some_method }.should raise_error
Zobacz dokumentację (składnia RSpec 1) i dokumentację RSpec 2, aby uzyskać więcej.
RSpec 2
Uwaga:
raise_error
iraise_exception
są wymienne.RSpec 1
Uwaga:
raise_error
to alias dlaraise_exception
.Dokumentacja: https://www.relishapp.com/rspec
RSpec 2:
RSpec 1:
źródło
Zamiast lambda użyj, aby:
Dotyczy to nowszych wersji rspec, tj. Rspec 2.0 i nowszych.
Zobacz dokumentację, aby uzyskać więcej.
źródło
expect
jest lepszy czy gorszy niżlambda
.expect { visit welcome_path }.to raise_error
Składnia zmieniła się ostatnio i teraz jest:
źródło
Od wersji 3.3 na
rspec-expections
klejnotach pojawia się ostrzeżenie o pustej podwyżce_błędu bez parametruDaje to podpowiedź, że Twój kod może zawieść z innym błędem niż test przeznaczony do sprawdzenia.
źródło