gpt4 book ai didi

ruby - 如何正确模拟 rspec 中的 openssl 对象?

转载 作者:太空宇宙 更新时间:2023-11-03 16:07:18 27 4
gpt4 key购买 nike

我有一个方法:

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 对象?

最佳答案

为什么这可能是个错误的问题

您通常应该在需要时使用模拟:

  1. 避免在被测单元之外测试系统行为。
  2. 避免昂贵的操作,例如系统间测试。
  3. 确保调用一个对象,但您不关心结果。

在这种情况下,您不清楚为什么要测试此行为,或者您期望的结果是什么,或者为什么您认为您可能无法得到它。在大多数情况下,测试经过良好测试的外部库并不是正确的做法。

我认为正确的问题是

因此,根据您真正想要测试的内容,您可能需要检查:

  1. 该方法是否引发任何异常。
  2. 您的方法是否实际上是从某个应该调用它的对象调用的。

不过,在这两种情况下,模拟库与包含真实证书作为夹具数据似乎没有真正的好处。对于实际执行代码,夹具比模拟更好。

关于ruby - 如何正确模拟 rspec 中的 openssl 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10936349/

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