Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Node.js上使用带有Mocha的Reporters_Node.js_Mocha.js - Fatal编程技术网

在Node.js上使用带有Mocha的Reporters

在Node.js上使用带有Mocha的Reporters,node.js,mocha.js,Node.js,Mocha.js,正如我的用户名所暗示的,我是Node的新手。我真的喜欢很多想法。我只是想开始学习。我希望了解的一件事是如何使用Node设置测试驱动环境 目前,我有一个名为ToTest.min.js的基本javascript文件。这个文件定义了一个名为ToTest的类,它公开了一个名为getItems的方法。为了测试此方法,我在test.js中编写了以下代码: var should = require("should"); var toTest = require("../ToTest.min.js"); de

正如我的用户名所暗示的,我是Node的新手。我真的喜欢很多想法。我只是想开始学习。我希望了解的一件事是如何使用Node设置测试驱动环境

目前,我有一个名为ToTest.min.js的基本javascript文件。这个文件定义了一个名为ToTest的类,它公开了一个名为getItems的方法。为了测试此方法,我在test.js中编写了以下代码:

var should = require("should");
var toTest = require("../ToTest.min.js");

describe('ToTest.js', function () {
    describe('test1', function () {
        var t = new ToTest();
        var items = t.getItems();

        console.log("Result: " + items.length);
        t.should.have.length(1);
    });
});
我通过以下方式从命令行执行此文件:

mocha Test.js
执行时,我看到以下输出:

Result: 0

C:\Projects\MyProject\node_modules\sh
ould\lib\should.js:130
    throw err;
          ^
AssertionError: expected [] to have a length of 1 but got 0
    at Object.Assertion.length (C:\Projects\MyProject\node_modules\should\lib\should.js:434:10)
    at Suite.<anonymous> (C:\Projects\MyProject\Test.js:9:27)
    at context.describe.context.context (C:\Users\Myself\AppData\Roaming\npm\n
ode_modules\mocha\lib\interfaces\bdd.js:72:10)
    at Suite.<anonymous> (C:\Projects\MyProject\Test.js:5:5)
    at context.describe.context.context (C:\Users\Myself\AppData\Roaming\npm\n
ode_modules\mocha\lib\interfaces\bdd.js:72:10)
    at Object.<anonymous> (C:\Projects\MyProject\Test.js:4:1)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Module.require (module.js:364:17)
    at require (module.js:380:17)
    at C:\Users\Myself\AppData\Roaming\npm\node_modules\mocha\lib\mocha.js:152
:27
    at Array.forEach (native)
    at Mocha.loadFiles (C:\Users\Myself\AppData\Roaming\npm\node_modules\mocha
\lib\mocha.js:149:14)
    at Mocha.run (C:\Users\Myself\AppData\Roaming\npm\node_modules\mocha\lib\m
ocha.js:306:31)
    at Object.<anonymous> (C:\Users\Myself\AppData\Roaming\npm\node_modules\mo
cha\bin\_mocha:339:7)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Function.Module.runMain (module.js:497:10)
    at startup (node.js:119:16)
    at node.js:901:3

我也收到了同样的结果。

啊,您需要使用
it
功能进行实际测试,而不是
description

var should = require("should");
var toTest = require("../ToTest.min.js");

describe('ToTest.js', function () {
    it('test1', function () {
        var t = new ToTest();
        var items = t.getItems();

        console.log("Result: " + items.length);
        t.should.have.length(1);
    });
});

你说格式更好是什么意思?stacktrace在测试失败时非常有用,我不应该说是错误。只是结果没有格式化。这应该会有帮助。Mocha仍将打印堆栈跟踪,但您将得到一条很好的消息,如“AssertionError:expected[1,2]的长度为1,但得到了2”
var should = require("should");
var toTest = require("../ToTest.min.js");

describe('ToTest.js', function () {
    it('test1', function () {
        var t = new ToTest();
        var items = t.getItems();

        console.log("Result: " + items.length);
        t.should.have.length(1);
    });
});