我在浏览器中使用qUnit对我的宠物项目进行单元测试。我单元测试的模块可能如下所示:
// Filename: views/base.js
define(['../manager'], function(Manager){
return Backbone.View.extend({
//...
});
我想模仿依赖"../manager"
(manager.js)
我尝试使用testr.js和Squire.js这两个建议修改路径配置的路径。
示例:
testr.config({
root: '../',
baseUrl: 'src',
stubUrl: 'tests/mocks',
ignore: ['jquery', 'underscore', 'backbone'],
whitelist: ['tests/unit']
});
我在运行此代码后看到的问题是我正在测试的模块(base.js)也被模拟出来以及单元测试模块,因为它们作为依赖项包含在单元测试运行器中:
define([
'tests/unit/test-unit',
'tests/unit/views/base-view-unit',
], function(Test, BaseViewTest){
// ...
});
控制台输出:
http://localhost:63342/project/tests/mocks/js/views/base.stub.js 404 (Not Found)
http://localhost:63342/project/tests/mocks/tests/unit/views/base-view-unit.stub.js 404 (Not Found)
我可以将这两个文件添加到白名单中,但这不能解决我的问题。
我想我的问题是:如何模拟我正在测试的文件的deps而不是文件本身,当它被包含在单元测试运行器中时?