javascript - "namespace is undefined"使用jsTestDriver、Idea 9并测试3个测试用例时出现问题。有时它会直接挂起

标签 javascript unit-testing namespaces js-test-driver

我刚刚开始使用 jsTestDriver,我真的很喜欢它,但突然间,我开始遇到一个非常奇怪的错误,我不确定我到底做了什么来创建它。实际上,如果我尝试运行基本的 Greeter 测试,也会发生同样的问题。

这是我正在测试的 javascript 文件/类之一的示例:

myapp = myapp || {};

myapp.Module = function() {
    ...
};

所有类(class)都遵循这种模式。

我的测试类通常如下所示(我将给出一个非常简单的测试类):

ModuleTest = TestCase("ModuleTest");

ModuleTest.prototype.testInit = function() {
    var module = new myapp.Module(); // <---- it bombs here, on every test!

    assertFalse(module.isStarted);

    module.init();

    assertTrue(module.isStarted);
};

当它到达“new myapp.Module()”时它就会爆炸。以下是我所有测试中出现大约 30 次的错误消息:

myapp is not defined
/src/test/webapp/js/ModuleTest.js:4

这是我的配置文件:

server: http://localhost:9876

load:
  - src/main/webapp/js/jquery/*.js
  - src/main/webapp/js/*.js
  - src/test/webapp/js/*.js

有谁知道到底出了什么问题吗?有时,当我在 IDEA 中运行所有测试时,我的 IDE 完全挂起,或者 jsTestDriver 需要很多分钟才能最终报告上述结果...

:(

最佳答案

升级到 v.1.3.1 后,我遇到了同样的问题。就我而言,问题出在文件编码上。我使用 Visual Studio 进行开发,它添加了 byte order mark (3 个额外字节)位于文件开头。可以在 Far 管理器中看到这些字节。如果您使用 VS,请尝试按以下方式保存文件:“文件->高级保存选项->”编码:Unicode(UTF-8 无签名)- 代码页 65001。 它应该可以解决您的问题。

关于javascript - "namespace is undefined"使用jsTestDriver、Idea 9并测试3个测试用例时出现问题。有时它会直接挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4436446/

相关文章:

c++ - 引用封闭命名空间

javascript - 如何使用 setTimeout 方法在 "x"秒后刷新 jTable?

javascript - 如果在没有更改事件的情况下选中子单选按钮,如何显示父数据选项卡值?

ios - Xcode 中的单元测试给出 Shell 脚本调用警告

ruby - Ruby 中命名空间函数的最佳实践? (新手问题)

Python 命名空间和模块

javascript - 将带有 NodeJS 循环的 json 对象复制到 JSON 文件中

javascript - 检测用户是否有意从其页面重定向

php - 在 Codeception 中为单元测试套件添加自定义 Helper 方法的正确方法是什么?

java - Runtime.getRuntime().exec jUnit 测试