如何解决ReferenceError:未定义加密
我正在测试我的React应用,当它运行执行Web Cryptography API(特别是await crypto.subtle.generateKey
)的测试时,我收到以下错误消息
ReferenceError:未定义加密货币
React Testing库似乎无权访问该库,这很有意义,因为这是浏览器固有的API,并且React Testing库模拟了一个库。
如何添加库以使测试通过?遵循TDD原则,我不应修改代码以使其通过测试。
解决方法
正如@ Jayce44所建议的,您只需向窗口对象添加一个模拟即可。无论如何,擦除测试中的任何随机成分都是一个很好的模式(尤其是在TDD中)。定义一个假/模拟加密模块,根据测试用例定义其输出,这对于编写可靠的测试用例有很多好处。根据所使用的框架,看起来可能像这样:
beforeEach(() => {
setupCryptoWithExpectedValue(42)
});
test(() => {
productionCodeUsingCrypto()
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。