如何使Chai打印断言的参数名称而不是它的值

时间:2016-10-12 11:07:39

标签: javascript webpack mocha chai

我使用Mocha和Chai进行测试。当您在浏览器中单击鼠标左键扩展测试用例时,Mocha会显示整个测试代码,但是当Chai的任何断言失败时,我会得到类似的内容:

预计未定义存在

这种情况很难找到,如果文本描述最初没有给予断言,因为它是第二个参数。 有没有办法得到类似

的东西

预期存在foo.bar

P.S。我使用webpack,因此断言的行号没有任何意义(可以通过webpack生成文件来查找,但这很难)。

1 个答案:

答案 0 :(得分:1)

Chai没有任何功能,你可以打开它来获得你希望的那种报告。在许多情况下,我发现Chai生成的库存消息不够准确,无法快速找到问题所在,因此我设置了自定义消息。例如:

it("should test promise throwing error", () => {
    const foo;
    expect(foo, "foo should exist").to.exist;
});

如果expect(...).to.exist"... should exist"的冗余使您烦恼,您可以将消息缩短为足以满足您需求的字符串:expect(foo, "foo").to.exist。它并没有完全消除手工作业,但它减少了它。

对于自动解决方案,您必须编写expect的包装器,该包装器能够提取传递给它的参数的名称。这不是一项微不足道的任务。