node.js - 如何在 Node 中使用 Mocha 和 Chai 测试 Promise 拒绝?

标签 node.js unit-testing mocha.js chai

我正在尝试使用 Mocha 和 Chai 测试我的服务和 dao。但是,在 Istanbul 尔的报道中,我看到“拒绝”线是红色的。这是示例测试方法的代码。

describe('findAllCategories()', function() {
    it('should return all categories', function() {
        var stub = sinon.stub(categoryDao, 'findAllCategories');
        stub.callsFake(() => {
            return Promise.resolve(cat);
        });
        categoryService.findAllCategories().then(response => {
            assert.length(response, 1);
        }).catch(isError)
        .then((err) => {
            console.log(err);
          assert.isDefined(err);
        });
    })
});

现在,当我记录错误时,它显示“TypeError:assert.length 不是函数”。

有什么出路吗?

最佳答案

断言库没有函数 length,但您可以使用 lengthOf()(有关详细信息,请参阅 https://www.chaijs.com/api/assert/):

assert.lengthOf(response, 1);

关于node.js - 如何在 Node 中使用 Mocha 和 Chai 测试 Promise 拒绝?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54853584/

相关文章:

javascript - 测试 Angular 绑定(bind)

silverlight - 在 TFS 2010 版本中运行 Silverlight 单元测试

unit-testing - 没有 Maven 和 JBoss AS 的 JSFUnit

node.js - Jasmine spyOn NodeJS

javascript - Node JS 的 SQL 外部化(XML 解析)

node.js - Grunt 无法在 Windows 8 上运行

node.js - 更新 Mongoose 中的嵌套查询

javascript - POST 请求中的测试和 stub 参数

mocha.js - 如何测试 redux-thunk 中间件异步功能?

javascript - 使用最新的 terser-webpack-plugin 和 Webpack5