【问题标题】:Mocha doesn't fail on assert(false)摩卡不会在断言上失败(假)
【发布时间】:2014-02-09 08:33:50
【问题描述】:

当使用 mocha 测试 Sails 应用程序的模型时,它似乎没有在回调中运行测试:

var assert = require('assert');

describe('Dataset', function() {
  describe('create', function() {
    it('should create a new dataset', function() {
      Dataset.create({
        'name': 'testDataSet',
        'description': 'This dataset exists for testing purposes only.',
        'visibility': 'private',
        'data': {
          "foo": {
            "barn": "door",
            "color": "green"
          }
        }
      }, function(err, dataset) {
        assert(false);
      });
    });
  });
});

该测试由为其初始化风帆的脚本调用。 运行此测试时,它通过了,即使它应该失败。

$: mocha

 1 passing (875ms)

此外,它似乎永远不会运行包含 assert(false) 的回调。将 assert false 放在任何其他位置都会产生预期的结果,而且sails 似乎运行正常。

非常感谢任何帮助。

【问题讨论】:

    标签: mocha.js sails.js


    【解决方案1】:

    您的代码是异步的,因此您应该在测试函数中使用回调:

    var assert = require('assert');
    
    describe('Dataset', function() {
      describe('create', function() {
        it('should create a new dataset', function(done) {
          Dataset.create({
            'name': 'testDataSet',
            'description': 'This dataset exists for testing purposes only.',
            'visibility': 'private',
            'data': {
              "foo": {
                "barn": "door",
                "color": "green"
              }
            }
          }, function(err, dataset) {
            if (err) throw err;
            done();
          });
        });
      });
    });
    

    在需要的地方添加assert 呼叫。

    有很多例子here

    【讨论】:

      猜你喜欢
      • 2020-12-31
      • 1970-01-01
      • 2015-01-02
      • 1970-01-01
      • 2023-01-30
      • 1970-01-01
      • 2021-04-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多