如何使用Promise编写功能的单元测试

时间:2019-05-15 00:17:33

标签: javascript node.js mocha chai

我是Node.JS和Mocha的完整入门者,受命为小组项目编写单元测试。我的问题是我什至不知道从哪里开始,因为返回值是一个承诺。 观看了很多指南,我已经学会了如何检查通用函数的返回值,但这对我的实际示例无济于事。 如果有任何经验丰富的开发人员可以通过列出的功能帮助我,提供我所列出的功能的指南和代码示例,则可以破解并理解它,并将其应用于其他功能。 这是一个从CSV文件获取统计信息的代码示例

year

2 个答案:

答案 0 :(得分:1)

在mocha中,您可以从测试函数返回promise,以指示测试(it)已完成。

describe('My Test', function () {
  it('should do something cool', function () {
    return getStatistics().then(readStatistics => {
      // Assert whatever you want here
    });
  });
});

getStatistics函数抛出的任何错误或任何断言错误都将导致测试失败。

如果您专门查看是否有东西抛出错误,也可以在测试中捕获错误(reject())。

describe('My Test', function () {
  it('should do something cool', function () {
    return getStatistics().catch(error => {
      // Assert whatever you want here about the error
    });
  });
});

https://mochajs.org/#asynchronous-code

答案 1 :(得分:0)

代码如下:

`describe('Statistic', function(){
  it('should transform data into strings', function () {
    return statGet().then(readStatistics => {
      let maybe = statGet();
      var csv = maybe.csv;

      let dat = function (data) {
        data.avgDuration = "1,2";
        data.avgPassed = "2,3";
        data.avgReachedPoints ="3,4";
        data.minReachedPoints = "4";
        data.maxReachedPoints = "5";
        return data;
      }
      assert.typeOf(csv.transform(dat, 'string'));
    });
  });
});`

另一方面,我对我应该测试的东西一无所知。 我感到无可救药。我想回到世界=(