gpt4 book ai didi

ruby - 如何测试 RSpec 自定义匹配器

转载 作者:行者123 更新时间:2023-12-03 21:39:16 24 4
gpt4 key购买 nike

我正在开发 RSpec 自定义匹配器,如 rspec-dnsrspec-ssltls .

测试 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 测试案例就会失败。我想测试错误情况可以出错。

最佳答案

如果失败的断言是

expect('www.example.com:443').not_to have_certificate
带有消息“网址确实有证书”
然后你可以测试它
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/)

关于ruby - 如何测试 RSpec 自定义匹配器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27611171/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com