刚开始使用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测试用例,没有特殊的断言模块或任何东西,纯粹简单的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));
});
});
});
});
基本上只是编写这些来看看我是否可以按照我认为应该工作的方式使用mocha,因为我看到的例子都很有意义。但是,当我运行此代码时,它最终无法正常工作,原因是我尝试使用索引调用的任何函数失败,index.add,index.subtract等等,特别是因为TypeError:index。[function_name]不是一个功能。
从我在其他人的代码中阅读和看到的内容,这应该是有用的。我的文件夹设置为我测试的文件位于\ lscmocha \ app中,测试文件包含在\ lscmocha \ test中。任何帮助将不胜感激,抱歉,如果它是一个明显的答案或一个重复的问题,我找了一会儿,找不到任何东西。
答案 0 :(得分:1)
Sunil D.问我是否导出了我的功能,而我却没有。必须跳过告诉我的部分。如果您遇到与我相同的问题,请确保您的功能在主javascript脚本文件中导出。