gpt4 book ai didi

testing - intern.js 如何测试遗留的非模块化代码

转载 作者:行者123 更新时间:2023-11-28 20:52:35 27 4
gpt4 key购买 nike

我正在使用 intern.js 作为测试框架来测试 dojo 模块,它运行良好。

现在我必须测试一些非模块化的遗留代码,但我不能。

这是要测试的简单文件的示例:

var Component = function() {
this.itWorks = function() {
return true;
}
};

这是测试

define([
'intern!object',
'intern/chai!assert',
'intern/order!controls/component',
], function (registerSuite, assert) {
registerSuite({
name: 'test legacy code',

'simple test': function () {
console.log(Component);
}
});
});

测试失败,提示“组件未定义”。

我注意到它只有在我写的时候才有效

window.Component = Component

在要测试的文件底部。

我不能修改所有的文件来测试,是否可以用不同的方式测试文件?

最佳答案

这应该可以正常工作。一个可能的问题是您从何处加载 component'intern/order!controls/component' 中的'controls/component' 依赖项是,除非有任何特殊的加载程序配置,相对于执行加载的文件。这意味着如果项目是这样设置的:

project/
controls/
component.js
tests/
intern.js
componentTest.js

component是从componentTest.js加载的,那么依赖应该是'intern/order!../controls/component.js'。 (在这种情况下,它实际上可以在没有 '../' 的情况下工作,因为 controls 是项目中的顶级目录。)

另一个潜在的问题是非 AMD 标识符应该使用 .js 后缀。这告诉加载程序正在加载的是通用脚本而不是 AMD 模块。

另请注意,order 插件只需要以特定顺序加载多个遗留文件。如果顺序无关紧要,或者您只是加载一个脚本,您可以只使用脚本本身 '../controls/component.js' 作为依赖项。

关于testing - intern.js 如何测试遗留的非模块化代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40147923/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com