在Ruby on Rails项目中,我希望在代码中对异常消息进行Assert,以确保它由于正确的原因失败,并提到重要的细节。
下面是一个总是引发的函数:
class Quiz < ApplicationRecord
def self.oops
raise ArgumentError.new("go away")
end
end
测试:
require "test_helper"
class QuizTest < ActiveSupport::TestCase
test "error message" do
assert_raises(ArgumentError, match: /whatever/) do
Quiz.oops()
end
end
end
当我运行bin/rake test
时,这通过了,但我预计它会失败,因为实际的错误消息与assert_raises
中的match
不匹配。
如何捕获错误消息并针对它进行Assert?
1条答案
按热度按时间dxxyhpgq1#
我认为你可以使用一种稍微不同的方法(使用块捕获错误消息,然后对消息内容进行Assert):