测试积点老人 发表于 2018-6-22 11:48:33

Day1-7测试积点任务

问题:
关于前端测试karma、jasmine、mocha,除了把函数暴露到window外,还有别的办法测
试闭包里的函数吗?
例如我的代码是这样写的。


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


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


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

qqq911 发表于 2018-6-25 10:31:34

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

jingzizx 发表于 2018-6-25 10:48:38

我感觉肯定是有方法的,类似于注入之类的,查查看看是否有

海海豚 发表于 2018-6-25 11:31:23

我感觉肯定是有方法的,类似于注入之类的,查查看看是否有

梦想家 发表于 2018-6-25 11:32:45


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