javascript - 如何加载文件以使用 Jasmine Node 进行测试?

标签 javascript bdd jasmine

我有一个简单的 JavaScript 文件 color.js 和一个匹配的规范文件 colorSpec.js

color.js:

function Color() 
{

}

colorSpec.js:

require('./color.js');

describe("color", function() {
  it("should work", function() {
    new Color(255, 255, 255);
  });
});

当我运行 jasmine-node colorSpec.js 时,出现以下异常:

ReferenceError: Color is not defined

如何让 Jasmine 在运行 colorSpec.js 之前加载我的 color.js 文件?

最佳答案

你可以使用 require() 将 color.js 加载到 colorSpec.js 中。我不明白 Jasmine 如何猜测所有的依赖关系,而不需要你告诉 Jasmine 它们在你的规范文件中到底是什么。 编辑 : 一个快速而肮脏的解决方案,但也许有内置的 Jasmine 可以做到这一点:

fs = require('fs')
myCode = fs.readFileSync('./color.js','utf-8') // depends on the file encoding
eval(myCode)

那么你的类(class)应该可以使用 jasmine

如果您直接在文件上调用 require,我认为您需要创建一个模块并将其导出

关于javascript - 如何加载文件以使用 Jasmine Node 进行测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9436416/

相关文章:

javascript - 让javascript将金额添加到onkeyup上的总计框中

bdd - Gherkin "OR"使用 BDD 减少重复的语法

ruby-on-rails - Rails 3 Autotest 说 "command not found",有什么想法吗?

javascript - 如何阻止 Protractor 在失败时运行进一步的测试用例?

javascript - 为什么我的滚动条与我想要的相反?

JavaScript 错误 : 'missing ) after argument list"

ruby-on-rails-4 - 使用 Minitest 为所有测试设置标题的最佳方法

angular - 在 Jasmine 中模拟导入的类实例

jasmine - Jasmine中的 "it()"是什么意思?

javascript - 我在 CreateJS : "createjs is not defined" 中收到错误