繁体   English   中英

摩卡在测试中传递“不是功能响应”

[英]Mocha delivering “not a function response” in testing

刚开始使用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脚本文件中即可。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM