Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否有不使用eval的JavaScript spy/mock/stub库?_Javascript_Unit Testing_Tdd_Bdd_Firefox Os - Fatal编程技术网

是否有不使用eval的JavaScript spy/mock/stub库?

是否有不使用eval的JavaScript spy/mock/stub库?,javascript,unit-testing,tdd,bdd,firefox-os,Javascript,Unit Testing,Tdd,Bdd,Firefox Os,我有一个HTML5应用程序,它的目标是Firefox操作系统等。Firefox操作系统中的打包应用程序无法使用eval。一批 default-src *; script-src 'self'; object-src 'none'; style-src 'self' 'unsafe-inline' 已经生效,不能放松。我的应用程序本身不使用eval,但我所知道的spy/mock/stub库(如Sinon)使用eval。因此,在Firefox操作系统下运行时,我使用spy、mock或stub的单元

我有一个HTML5应用程序,它的目标是Firefox操作系统等。Firefox操作系统中的打包应用程序无法使用eval。一批

default-src *; script-src 'self'; object-src 'none'; style-src 'self' 'unsafe-inline'
已经生效,不能放松。我的应用程序本身不使用eval,但我所知道的spy/mock/stub库(如Sinon)使用eval。因此,在Firefox操作系统下运行时,我使用spy、mock或stub的单元测试失败。他们在普通浏览器中取得了成功。显然,我可以手动创建间谍、模拟和存根,但我不想重新发明轮子

是否有JavaScript spy/mock/stub库不使用eval?

Jasmine 2.2的spies在Firefox OS应用程序中确实运行良好,您可以使用更自然的Mocha语法进行异步测试


不过,重写我的测试确实花费了相当长的时间,因为Jasmine expect和spies的语法与expect.js和sinon.js不同。

您可以查看。快速浏览一下他们的源代码,他们的SpyStrategy和SpyRegistry类中的eval引用中没有出现,这两个类用于在Jasmine中实现模拟和间谍。您正在Firefox OS上的打包Firefox OS应用程序中运行单元测试?这给人留下了深刻的印象:为了测试运行的目的,您是否可以在Firefox中运行它们并仍然获得足够的覆盖率?主要的区别是缺少API,您必须模拟这些API。不过,您可能不需要直接测试这些API。单元测试可以在浏览器中运行,但并非所有功能测试都可以。特别是,对HTML5API的支持正在迅速变化,因此了解(例如)在任何给定平台上写入文件是否确实成功非常重要。Jasmine2.x对异步测试有很好的支持,所以我再给它一次机会。