使用Chai + Mocha测试失败的自定义特定错误消息?

时间:2019-06-11 15:41:44

标签: javascript unit-testing testing mocha chai

我正在为一个功能编写单元测试,并让我对照几十个测试数据进行检查。如果该功能不适用于其中一种测试用例,那么我希望它在该功能失败的地方显示特定的数据。

就我而言,我在为测试编写的后端中有大约一百个函数,并且每个函数我都在编写一些Chai.js assert()用例,它们可以检查许多测试数据。我不想让它跨数十个数据打印出相同功能的单个测试,因为我希望在整个后端运行测试时保持日志可读。

这是我目前编写测试的方式:

context('relative urls should be removed', function () {
  it('data should initially contain relative urls', async function () {
    assert(testHTML.every(containsRelativeURLs));
  });
  // (run testHTML through my function here)
  it('data should end with no relative urls', async function () {
    assert(!testHTML.every(containsRelativeURLs));
  })
});

如果我误解了编写单元测试的正确方法,请告诉我。如果有更清洁或更标准的方法,我想知道。

1 个答案:

答案 0 :(得分:0)

assert可以采用两个参数-第一个是您的断言,第二个是消息。您可以使用message param来记录信息。

describe('it passes all the tests /', ()=>{
    testData.forEach(testAsync =>
      it('should pass this test', async (done) => 
        const result = await testAsync
        assert(result === expectedResult, "bad ${result} returned by testAsync")
        done()
    )
})