我有以下单元测试,当它失败时(或者我希望它失败)当前通过...
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代码'。
我猜我的测试代码有问题。无论如何,提前感谢任何帮助。
我在收到反馈后编辑了代码以包含回调,虽然这是有用的建议,但实际上并不是我的问题。问题是......为什么测试通过?我想测试此代码未提供的特定错误消息。感谢。