JavaScript单元测试。嘲笑什么?
我正试图在我的开发过程中引入单元测试,但我不知道该怎么做 我有一个包含很多模块的大型应用程序(分离的js文件)。例如:JavaScript单元测试。嘲笑什么?,javascript,unit-testing,qunit,Javascript,Unit Testing,Qunit,我正试图在我的开发过程中引入单元测试,但我不知道该怎么做 我有一个包含很多模块的大型应用程序(分离的js文件)。例如: videoInfo.js availableVideos.js availableChannels.js networkSettings.js 还有几个模块为其余部分提供服务: eventHandler.js i18n.js ajax.js configuration.js auth.js baseModule.js 问题是:如何测试像videoInfo.js这样使
- videoInfo.js
- availableVideos.js
- availableChannels.js
- networkSettings.js
- eventHandler.js
- i18n.js
- ajax.js
- configuration.js
- auth.js
- baseModule.js
- 我只加载videoInfo.js并模拟所有内部接口。问题是,如果任何内部接口发生更改,我都不会捕获错误
- 我加载所有模块(整个应用程序)并使用真实的应用程序环境测试videoInfo(将模拟的外部AJAX调用除外)
当您有很多内部依赖项时,什么是实现这一点的好方法?理想情况下,您希望在测试套件中同时使用这两种方法 您希望模拟所有依赖项(在您的videoInfo.js示例中),以便可以将其代码与其他代码隔离开来,并确保其正常工作。根据您所拥有的代码的设计,这可能很困难。因为编写代码时可能没有考虑到测试,所以不会进行模拟 您还需要进行一系列完整的应用程序级测试,以确保部件之间的所有交互都能正常工作。根据应用程序的不同,这些测试可能非常脆弱,因为它们依赖于您无法控制的数据 这些测试可能在单独的套件中,因此它们可以彼此独立运行 如果您刚刚开始编写代码测试,请尽可能编写最好的测试。测试是代码,应该在进行过程中进行重构。尽可能编写最简单的测试。为遗留代码编写测试是极其困难的。目前的设计可能难以正确测试。所以,当你做出改变时,尽你所能