を使用してエラーを発生させましたraise(ConfigurationError.new(msg))
これをrspecでテストしようとしました:
expect {
Base.configuration.username
}.to raise_error(ConfigurationError, message)
しかし、これはうまくいきません。どうすればこれをテストできますか? 目標は一致することmessage
です。
エラーメッセージを正規表現と一致させることができます:
it { expect{ Foo.bar }.to raise_error(NoMethodError, /private/) }
これは、メッセージ notNoMethodError
で発生したかどうかをチェックします。private method
undefined method
NoMethodError.new
同じエラーメッセージでもテストに合格しなかったので役に立ちます。
rspec > 2.14.0 を使用していることを確認し、このコミットを見てください。
https://github.com/rspec/rspec-expectations/commit/7f02b503d5ae48d1141b6465acd0a7a4e1bb84dd
it "passes if an error instance is expected" do
s = StandardError.new
expect {raise s}.to raise_error(s)
end