我正在开发像rspec-dns和rspec-ssltls这样的RSpec自定义匹配器。
测试RSpec自定义匹配器的最有效方法是什么?
我测试自定义匹配器(表示测试目标是自定义匹配器)。我可以测试自定义匹配器的正常情况,如下所示。
rspec_ssltls/have_certificate_spec.rb
## Having certificate
it 'can evaluate having certificate' do
stub_ssl_socket(peer_cert_chain: [nil])
expect('www.example.com:443').not_to have_certificate
stub_ssl_socket(peer_cert_chain: [example_cert])
expect('www.example.com:443').to have_certificate
end
但是如果我测试错误情况,RSpec测试用例就会失败。我想测试错误情况可能是错误。
答案 0 :(得分:0)
如果失败的断言是
expect('www.example.com:443').not_to have_certificate
带有消息“url确实有证书” 然后你可以用
测试它expect { expect('www.example.com:443').not_to have_certificate }.to raise_error 'url does have certificate'
如果只想测试部分失败信息,可以使用
expect { expect('www.example.com:443').not_to have_certificate }.to raise_error(/does have/)