需要对用户进行功能的e2e测试以进行认证

时间:2019-02-25 13:04:47

标签: e2e-testing

我正在尝试使用e2e测试来测试与用户需要在nestjs中进行身份验证的功能相关的终结点

这是我的测试文章。e2e-spec:

describe("Post", () => {
  let app: INestApplication;
  const postService = {
     findAll: (id) => 
     [
       {
         name: "test",
       }
     ]
  };

  beforeAll(async () => {
    const module = await Test.createTestingModule({
      imports: [PostModule, TypeOrmModule.forRoot()]
    })
      .overrideProvider(PostService)
      .useValue(postService)
      .compile();

    app = module.createNestApplication();
    await app.init();
  });

   it(`/GET posts`, () => {
     return request(app.getHttpServer())
       .get("/post")
       .auth("username", "pass")
       .expect(200)
       .expect(postService.findAll("id"));
   });

  afterAll(async () => {
    await app.close();
  });
});

这是我的控制器,可以从服务中调用函数:

@Get()
  getPost(@Request() req): Promise<PostDto[]> {
    const userId = req.user[0].id;
    return this.postService.findAll(userId);
  }

运行测试时,我只会收到此错误:

[ExceptionHandler]无法读取未定义的属性“ 0” TypeError:无法读取未定义的属性“ 0”

如果我在控制器中更改此行:

const userId = req.user[0].id;

像这样的静态对象:

const userId = "id";

测试工作正常,如何解决此问题?

0 个答案:

没有答案