传递我期望的测试应该会失败Mocha和Chai使用expect

时间:2017-09-03 21:09:28

标签: node.js unit-testing error-handling mocha chai

我有以下单元测试,当它失败时(或者我希望它失败)当前通过...

describe('getExchangeRate', function() {
    it('should return an error if the values entered are not currency ISO values', function(done) {
    done();
    expect(getExchangeRate('Pounds', 'Dollars', callBack())).to.throw(new Error('Input is not valid ISO code'));
    })
});

这是我正在测试的功能......

function callBack(data) {
    return data;
}

function getExchangeRate(currencyFrom, currencyTo, callBack) {
  //connect to API url
  const exchangeRateRequest = http.get(`http://api.fixer.io/latest?base=${currencyFrom}`, response => {
    //read data
    let body = "";
    response.on('data', data => {
      body += data.toString();
    });
    response.on('end', () => {
      //parse data
      const exchangeRates = JSON.parse(body);
      //find exchange rate
      const exchangeRate = exchangeRates.rates[currencyTo];
      //return data
      callBack(exchangeRate);
    });
  });
}

我想有一个错误被抛出,因为可能会有404,但是在这种情况下我希望测试失败,因为返回的消息肯定不是'输入不是有效的ISO代码'。

我猜我的测试代码有问题。无论如何,提前感谢任何帮助。

我在收到反馈后编辑了代码以包含回调,虽然这是有用的建议,但实际上并不是我的问题。问题是......为什么测试通过?我想测试此代码未提供的特定错误消息。感谢。

0 个答案:

没有答案