【发布时间】:2019-08-29 22:03:06
【问题描述】:
这是 NestJs 中resolver 的示例,我正要为这个文件编写测试。但是在 nestjs 文档中没有测试解析器的文档。
我已经对我的service 进行了测试,但解析器内部也可能没有多少逻辑,因此最好也对它们进行测试。
如何测试resolver 文件?
import { ObjectId } from 'mongodb';
import { AuthGuard } from '../utils/Auth.guards';
import { UseGuards } from '@nestjs/common';
import { IUser } from '../users/users.service';
import { User } from '../utils/user.decorator';
import { Query, Resolver, Mutation, Args } from '@nestjs/graphql';
import { AccessService } from './access.service';
import { NeedAccess } from '../utils/needAccess.decorator';
import { HasAccess } from '../utils/access.decorator';
@Resolver('Accesss')
@UseGuards(AuthGuard)
export class AccessResolvers {
constructor(private readonly accessService: AccessService) {}
@Query()
@NeedAccess()
access(
@Args('userId') userId: ObjectId,
@User() user: IUser,
@HasAccess(['access.view']) hasAccess,
) {
if (userId && hasAccess) { // this might be a situation to concern about in tests
return this.accessService.getUserAccess(userId);
} else {
return this.accessService.getUserAccess(user._id);
}
}
}
【问题讨论】:
-
你想写单元测试还是e2e测试?
-
我现在还没有决定,实际上我正在寻找一个简单的解决方案。除此之外,知道如何编写单元测试或 e2e 在这里可能是有益的。 :) @KimKern
标签: javascript node.js typescript jestjs nestjs