Ruby 如何在rspec中正确模拟openssl对象?
我有一个方法:Ruby 如何在rspec中正确模拟openssl对象?,ruby,rspec,mocking,tdd,openssl,Ruby,Rspec,Mocking,Tdd,Openssl,我有一个方法: require 'openssl' def extract_creds(data) pfx = OpenSSL::PKCS12.new(data) { :certificate => pfx.certificate.to_pem, :key => pfx.key.to_pem } rescue # handle error end 我想为它写一个rspec示例。我应该如何正确模拟pfx对象?为什么这可能是一个错误的问题 当您想要: 避免在被测单元之外
require 'openssl'
def extract_creds(data)
pfx = OpenSSL::PKCS12.new(data)
{ :certificate => pfx.certificate.to_pem, :key => pfx.key.to_pem }
rescue
# handle error
end
我想为它写一个rspec示例。我应该如何正确模拟pfx对象?为什么这可能是一个错误的问题
当您想要:
不过,在这两种情况下,模拟库与将真正的证书作为夹具数据相比,似乎没有什么真正的好处。在实际执行代码方面,fixture比mock更好。你说得对-没有任何理由测试外部库。我想测试这个方法有两个原因:1。如果成功,则返回正确的哈希值2。如果失败了,它会引发我的自定义异常,而您又是对的,在另一种方法中,我会存根这个家伙。我想在这种情况下添加fixture是一种正确的方法。谢谢是的,我要用真实的数据来处理这个案子,谢谢!:)