刚开始使用mocha作为测试套件,并且在不使用几年后又恢复使用javascript的速度,因此这可能是一个愚蠢的问题,而且可能没有明显的答案。只是测试一下,看看有什么用。
我在一个名为index.js的文件中有一个小的计算函数文件,该文件是mocha设置为可跳转。
function add(numA, numB) {
return parseFloat(numA) + parseFloat(numB);
}
function subtract(numA, numB) {
return parseFloat(numA) - parseFloat(numB);
}
function divide(numA, numB) {
return parseFloat(numA) / parseFloat(numB);
}
function multiply(numA, numB) {
return parseFloat(numA) * parseFloat(numB);
}
function modulo(numA, numB) {
return parseFloat(numA) % parseFloat(numB);
}
尝试使其尽可能简单,同时允许一些变化和测试空间。无论如何,然后我尝试为其编写一组测试用例,也就是简单的mocha测试用例,没有特殊的assert模块或任何东西,纯粹是简单的mocha和javascript。
describe("index", function() {
var assert = require("assert");
var x = 12;
var y = 34;
var index = require('../app/index');
beforeEach(function() {
x++;
y--;
console.log(" x = " + x + "; y = " + y);
});
describe("index", function() {
describe("Addition", function() {
it("should add numbers", function() {
assert.equal(x + y, index.add(x, y));
});
});
describe("Subtraction", function() {
it("should subtract numbers", function() {
assert.equal(x - y, index.subtract(x, y));
});
});
describe("Division", function() {
it("should divide numbers", function() {
assert.equal(x / y, index.divide(x, y));
});
});
describe("Multiplication", function() {
it("should multiply numbers", function() {
assert.equal(x * y, index.multiply(x, y));
});
});
describe("Modulus", function() {
it("should modulo numbers", function() {
assert.equal(x % y, index.modulo(x, y));
});
});
});
});
基本上只是写这些来看看我是否可以按照我认为应该的方式来工作,因为我所看到的例子都是合理的。但是,当我运行此代码时,它最终无法正常工作,原因是我尝试使用索引调用的任何函数均失败,包括index.add,index.subtract等,尤其是由于TypeError:index。[function_name]不是功能。
从我在别人的代码中阅读和看到的内容来看,这应该可以工作。我的文件夹已设置为要测试的文件位于\ lscmocha \ app中,而包含这些测试的测试文件位于\ lscmocha \ test中。任何帮助将不胜感激,很抱歉,如果它是一个明显的答案或重复的问题,我找了一会儿,找不到任何东西。
最佳答案
Sunil D.问我是否导出了函数,但没有。一定已经跳过了告诉我的部分。如果您遇到与我同样的麻烦,只需确保将函数导出到主要的JavaScript脚本文件中即可。