我正在尝试使用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";
测试工作正常,如何解决此问题?