是否有不使用eval的JavaScript spy/mock/stub库?
我有一个HTML5应用程序,它的目标是Firefox操作系统等。Firefox操作系统中的打包应用程序无法使用eval。一批是否有不使用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的单元
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对异步测试有很好的支持,所以我再给它一次机会。