您现在可能正在使用不同的浏览器进行捕获(或不同的浏览器设置,如在 IE 或严格模式下打开的控制台),现在抛出不同的异常,或者您的代码库可能从那时起发生了变化。
JsTestDriver 没有改变 1.3.5 的已定义/未定义变量处理的行为,因为它只是捕获浏览器的异常。
无论如何,jsTestDriver 不会导致测试失败,但会在引用未定义的变量时导致测试错误。
例如,对于代码库中的这段代码(假设undef
是一个未定义的变量):
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 可能会在您的名称空间定义周围添加一个闭包。尝试这个
代替:
var Program = {};
利用:
window.Program = {};
因为Program.Dialog
你不应该改变任何东西
请尝试以了解是否是原因。