我有一个正在控制器中使用的函数;
我正在尝试使用 supertest 测试调用端点的控制器的捕获。
我试图用 sinon 存根函数以强制它抛出错误,但如果函数抛出错误,它应该返回 500 时会继续返回 http 201。似乎存根不起作用!
一段测试代码:
import * as services from '../../../src/domain/farm/service';
describe('Farm.insertOneController', () => {
beforeEach(async () => {
sandbox = Sinon.createSandbox();
});
afterEach(async () => {
sandbox.restore();
});
it('should throw error', async () => {
sandbox.stub(services, 'insertOneFarmService').throws();
const r = await global.testRequest
.post('/v1/farms')
.set('authorization', `Bearer ${token}`)
.send({ name: 'Farm1'});
expect(r.status).toBe(500);
});
});
我试图存根的函数:
export const insertOneFarmService = async (f: FarmCreateDTO): Promise<Farm> => {
return await insertOne(f);
};
导出服务的索引:
export * from './insert-one';
感谢您的帮助!