- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在设置中有一个 mochajs 测试文件和一个 javascript 代码文件,如下所示:
/js/module/codefile.js
/js/test/testfile.js
codefile.js 包含一些 javascript 函数,例如:
function addNumbers(a, b){
return a+b;
}
testfile.js 调用代码文件中的函数来测试它们:
describe("Add numbers test", function() {
it("checks valid result", function() {
var a = 2;
var b = 1;
var result = addNumbers(a, b);
expect(result).to.equal(3);
});
});
从命令行我 cd 到 js 文件夹(测试和模块目录的父目录),然后我运行 mocha 并得到以下错误:ReferenceError:addNumbers 未在上下文
我实际上看不出它是如何定义的,因为 mocha 怎么知道这个函数来自哪里? (注意,我使用的是客户端 JS,因此不能使用导入,并且还没有看到任何具体方法(通常在 Mocha 或 Karma 或 JS 中),其中函数的定义与在 Python 或 Java 中的定义相同)。关于如何在 mocha 中运行简单的单元测试有什么想法吗?
我最初尝试让 mocha 在 WebStorm 中运行,但在出现类似错误后放弃了。
最佳答案
嗯,mocha命令是一个nodejs程序。这意味着您可以使用 Nodejs 的模块系统来加载您的功能。
function addNumbers(a, b){
return a+b;
}
module.exports = addNumbers;
在你的测试文件中你将拥有
var addNumbers = require('../module/codefile.js');
describe("Add numbers test", function() {
it("checks valid result", function() {
var a = 2;
var b = 1;
var result = addNumbers(a, b);
expect(result).toEqual(3);
});
});
但是,你说你是在前端使用你的代码。那么在这种情况下,您只需检查 module
对象是否存在。如果存在,则表示 mocha 需要您的文件进行单元测试。
function addNumbers(a, b){
return a+b;
}
if (module && module.exports) {
module.exports = addNumbers;
}
如果你想摆脱这种讨厌的if
,你可以使用browserify 来捆绑你的模块。 . Browserify 帮助您使用 Nodejs 的模块系统在前端进行编码。所以您的代码将保持不变。
关于javascript - 测试功能不在测试文件中时出现mochajs referenceerror,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34824075/
目前,我正在使用 SuperTest 来测试 API,对于每个请求,我需要从管理员用户获取访问 token ,因此我创建了此请求(工作正常): authenticate.js const reques
我正在尝试使用 MochaJS 在 headless 浏览器中运行一些 UI 测试,但我似乎无法正确设置超时选项。 加载 MochaJS 后,我的浏览器中运行了以下内容: window.mocha.s
这个问题在这里已经有了答案: mocha pass variable to the next test (3 个答案) 关闭 7 年前。 我正在学习如何编写一个针对供应商的 REST API 的 N
我正在使用 NPM(未以任何方式连接到我的 Rails 应用程序)测试位于我的 Rails 应用程序(使用链轮)之上的 javascript。 一切正常 - 测试运行(使用 NPM)。 但是我如何告诉
在对 Node.js 应用进行单元测试时,我在使用 setTimeout 时遇到了 Mocha 和 ES6 问题。 Mocha 说测试通过了,但是当我输入其他内容(检查测试,确保其有效)时,它仍然说它
这个问题已经有答案了: Skip subsequent Mocha tests from spec if one fails (1 个回答) 已关闭 5 年前。 我正在使用 mochajs 运行一些测
我认为,mocha 在我的测试范围内无法识别 jQuery,因为它测试纯 JavaScript 没有问题。我试图在我的测试中在 .js 文件的开头要求 jQuery 的完整代码,尝试手动定义 $bef
我正在尝试使用 mochajs 运行一个简单的测试: var assert = require('assert'), ActionCreators = require('../src/comp
我正在尝试对 sailjs 进行端到端测试的变体系统使用mocha .我想做的是通过创建用户等操作来模拟操作程序流,然后对该用户执行其他操作。 我希望能够将我的测试分成单独的文件,这些文件按照与不同操
我正在为我的 nodeJS 应用程序编写一个测试,用于检查 sequelize 模型是否具有所有已定义的属性。 当我运行测试时,我收到有关未定义上下文的错误。 我正在使用以下库来帮助检查模型。 seq
我的 ExpressJS/NodeJS API 有一个广泛的 MochaJS 测试套件。测试套件包括创建对象和从数据库中删除相同的对象。 目前,我所有的回归测试都在我的开发环境中通过了。我们希望能够在
我已经尝试了 http://appium.io/slate/en/1.5.3/?javascript#ios 中列出的故障排除步骤, 但没有运气。 我运行我的测试: $ mocha sample.js
我是一名优秀的程序员,十分优秀!