我在Nest.JS中有一个控制器,可以重定向:
@Get('route/:value')
async route(@Param('value') value: string) {
const result = await this.someService.doSomethingWithValue(value);
if (result) {
return { url: 'http://example.com/success.html' };
} else {
return { url: 'http://example.com/fail.html' };
}
}
如何在controller.spec.ts中测试正确的重定向响应? 即:
describe('test', () => {
it('should show success page', async() => {
service.doSomethingWithValue = jest.fn(() => Promise.resolve(true));
expect(controller.route('value')).toBe(?????);
});
});
答案 0 :(得分:0)
它应该正是您所期望的。您正在返回值,应该是那些值,对吗?实际上是那些对象,因此您应该使用toEqual
而不是toBe
。在这种情况下,您将返回true
,因此您应该拥有expect(controller.route('value')).toEqual({ url: 'http://example.com/success.html' })
。开始尽可能使用返回类型,从长远来看会为您提供帮助。