如何解决ava 抛出 npm ERR! sinon 存根引发新错误时测试失败
应用程序中抛出的任何错误都由全局错误处理程序处理,处理程序返回状态为 500 的错误,例如:
{
success: false,message: "Something went wrong!"
}
/* eslint-disable no-param-reassign */
const test = require('ava');
const sinon = require('sinon');
const request = require('supertest');
require('dotenv').config();
// dependency to be stubbed
const { CountryService } = require('../../src/components/country/country.component');
// stubs
const error = new Error('Some Error');
const doGetCountries = sinon.stub(CountryService,'doGetCountries').throws(error);
const app = require('../../src/app');
test.before(async (t) => {
t.context.stubs = {
doGetCountries,};
t.context.apiUrl = '/api/v1/countries';
t.context.server = request(app);
});
test.after.always((t) => {
delete require.cache[require.resolve('../../src/app')]; // kills server
});
test('Throws Internal Server',async (t) => {
const { server,apiUrl,stubs } = t.context;
const res = await server
.get(apiUrl)
.set('accept','application/json');
t.true(res.status === 500);
t.true(stubs.doGetCountries.calledOnce);
});
当我运行测试时它失败了,但没有错误消息
npm ERR! Test Failed. See above for more details.
如果执行 studb.resolve({})
则测试通过。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。