为了账号安全,请及时绑定邮箱和手机立即绑定

NestJS中的测试解析器

NestJS中的测试解析器

千万里不及你 2021-04-09 14:15:38
这是resolverNestJs中的一个示例,我将为此文件编写测试。但是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);    }  }}
查看完整描述

1 回答

?
MMMHUHU

TA贡献1834条经验 获得超8个赞

单元测试和e2e测试之间存在根本的区别。在单元测试中,您要测试单个隔离单元的每个极端情况,而在e2e测试中,您要测试单元之间的交互。两者都很重要,请参阅此答案以获取更详细的区别。

编写单元测试时,通常会模拟单元的所有依赖关系。在你的情况下AccessResolversAccessService,然后你测试每一个公共方法。有关如何使用模拟的详细示例,请参见以下答案(解析器没有区别)。


查看完整回答
反对 回复 2021-04-22
  • 1 回答
  • 0 关注
  • 190 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信