关于前端测试karma、jasmine、mocha,除了把函数暴露到window外,还有别的办法测试闭包里的函数吗?

发布于 2022-09-01 15:35:39 字数 256 浏览 22 评论 0

例如我的代码是这样写的。

js(function () {
function sayHi () {..}

window.sayHi = sayHi;
})();

那么我在测试时,必须把sayHi暴露出来才能测试。
那么假如我引入要测试的文件里,又有一个sayHi,这样不是会冲突吗?

请问闭包内的函数应该如何正确的测试呢?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

动次打次papapa 2022-09-08 15:35:39

window下面放个obj,比如window.debug={}。然后需要暴露的往里面塞就是了,如果不放心的话可以考虑在函数名前面加上包名或者文件路径。具体如下:
window.debug[ModuleName+'.sayHi] = sayHi;
以这个思路还能延伸出其他的玩儿法,比如debug里面每个模块再放一个obj从而简便的遍历每个模块内的方法。另外,如果担心内存泄露还可以考虑使用es6的WeakMap。

梦一生花开无言 2022-09-08 15:35:39

npm install rewire

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文