【问题标题】:Testing Error on node.js function with Mocha [closed]使用 Mocha 在 node.js 函数上测试错误 [关闭]
【发布时间】:2016-02-16 15:39:33
【问题描述】:

安装 Node.js 并使用 mocha 进行测试,

我在同一个目录下有两个文件,numbers.js 和 test.js

关注最高答案:What is the purpose of Node.js module.exports and how do you use it?

numbers.js

var myFunc = function myFunc() {
      return 10;
};

exports.myFunc = myFunc;

test.js

var assert = require('assert');
var numbers = require('./numbers');

describe('numbers', function() {
    it('first function returns 10', function() {
            var result = numbers.myFunc;
            assert.equal(result, 10);
     });
});

但是在运行$ mocha 时会返回错误:

AssertionError: [Function: myFunc] == 10

我做错了什么?

【问题讨论】:

    标签: javascript node.js testing tdd mocha.js


    【解决方案1】:

    您需要调用您的myFunc 函数。添加括号

    describe('numbers', function() {
        it('first function returns 10', function() {
                      var result = numbers.myFunc(); <<<<<<
    
                          assert.equal(result, 10);
                            });
    });
    

    【讨论】:

    • 我没有尝试过,但它确实让我走得更远!但是我得到一个新的断言错误它说AssertionError: undefined == 1
    • 我明白了,我在将 myfunc 更改为 myFunc 后删除了 (),这导致了另一个问题。
    【解决方案2】:

    首先,检查您的 numbers 模块是否正确需要。

    var numbers = require('../numbers'); // Check path of file numbers.js
    

    如果是,请写:

    var result = numbers.myFunc(); // your module exports 'myFunc' property not 'myfunc'
    assert.equal(result, 10); // your function return '10' instead of '1'
    

    【讨论】:

    • 我更新了代码,现在我把 numbers.js 和 test.js 放在了同一个地方,所以我认为它是正确的,我也修复了 numbers.myFunc。这有帮助,我走得更远,但这是一个新问题。摩卡给出错误AssertionError: [Function: myFunc] == 10
    • 是的,这是我的错误,我忘了在 myFunc 之后添加 '()'。基本上它是一个函数,所以你需要调用它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-08
    • 1970-01-01
    • 2021-04-25
    • 1970-01-01
    相关资源
    最近更新 更多