测试重新启动的控制器API

时间:2020-02-22 19:14:23

标签: nestjs

我在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(?????);
    });
  });

1 个答案:

答案 0 :(得分:0)

它应该正是您所期望的。您正在返回值,应该是那些值,对吗?实际上是那些对象,因此您应该使用toEqual而不是toBe。在这种情况下,您将返回true,因此您应该拥有expect(controller.route('value')).toEqual({ url: 'http://example.com/success.html' })。开始尽可能使用返回类型,从长远来看会为您提供帮助。