从 1.3.4 升级到 1.3.5 版本后,引用 undefined variable 会导致测试失败。
任何建议如何禁用此行为?我认为它与 js 严格模式有关,它默认启用此功能,但找不到禁用它的方法
JsTestDriver.conf 文件的一部分:
load:
- program.js
- dialog.js
程序.js:
Program = {};
对话框.js:
Program.Dialog = {};
错误信息:
引用错误:程序未定义
最佳答案
您现在可能正在使用不同的浏览器进行捕获(或不同的浏览器设置,例如在 IE 或严格模式下打开控制台),它们现在抛出不同的异常,或者您的代码库可能从那时起发生了变化。
JsTestDriver 没有改变 1.3.5 定义/ undefined variable 处理的行为,因为它只是捕获浏览器的异常。
无论如何,jsTestDriver 不会导致测试 失败 但在引用 undefined variable 时会导致测试 错误 。
例如,对于代码库中的这段代码(假设 undef
是一个 undefined variable ):
if(undef) alert("foo");
从命令行运行测试时的 jsTestdriver 输出是:
Total 2 tests (Passed: 1; Fails: 0; Errors: 1) (1,00 ms)
Chrome 23.0.1271.64 Windows: Run 2 tests (Passed: 1; Fails: 0; Errors 1) (1,00 ms)
PersonTest.testWhoAreYou error (0,00 ms): ReferenceError: undef is not defined
如您所见,测试套件中有 1 个错误,但 0 失败 。
编辑 :对于您的情况,jsTestDriver 可能会在您的 namespace 定义周围添加一个闭包。试试这个
代替:
var Program = {};
用:
window.Program = {};
对于
Program.Dialog
你不应该改变任何东西请尝试一下,看看是不是原因。
关于javascript - 升级到 1.3.5 后 JsTestDriver 测试中断,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13140391/