有没有办法在RSpec Exception中添加/附加自定义消息?
expected [...] to match [...] missing...extra...
我知道我可以将一个额外的异常消息参数传递给上述期望但我不想拥有自己的异常但是要添加一些我想要保留的RSpec异常。所以上面的陈述通常会引发CUSTOMER ID: 12345 - expected [...] to match [...] missing...extra...
我认为有用,但我希望有例如客户ID已添加到邮件中,例如trisqr=@(x) tri(x).*tri(x);
xmin=-2;
xmax=2;
Energy=integral(trisqr,xmin,xmax)
也许是通过猴子修补?
答案 0 :(得分:0)
您可以使用handle_failure
方法进行修补。
module MyExpectationHelper
def self.handle_failure(matcher, message, failure_message_method)
message = message.call if message.respond_to?(:call)
message ||=''
message += matcher.__send__(failure_message_method) #changes ||= to += to prepend message
if matcher.respond_to?(:diffable?) && matcher.diffable?
::RSpec::Expectations.fail_with message, matcher.expected, matcher.actual
else
::RSpec::Expectations.fail_with message
end
end
end
describe 'append message' do
module RSpec
module Expectations
module ExpectationHelper
def self.handle_failure(matcher, message, failure_message_method)
MyExpectationHelper.handle_failure(matcher, message, failure_message_method)
end
end
end
end
it 'should contain the message' do
expect(products).to match_array expected_products, 'CUSTOMER ID: 12345 - '
end
end