nestjs 中如何对 guard 进行单元测试?

目前项目使用 nestjs 写的,使用 @nestjs/testing 进行单元测试,对于 controller 和 service,参考 nestjs 官网已经实现了 spec 测试文件

import { CatsController } from './cats.controller';
import { CatsService } from './cats.service';

describe('CatsController', () => {
 let catsController: CatsController;
 let catsService: CatsService;

 beforeEach(() => {
   catsService = new CatsService();
   catsController = new CatsController(catsService);
 });

 describe('findAll', () => {
   it('should return an array of cats', async () => {
     const result = ['test'];
     jest.spyOn(catsService, 'findAll').mockImplementation(() => result);

     expect(await catsController.findAll()).toBe(result);
   });
 });
});

但是对于守卫 guard, 是对 controller 和 service 都是没有依赖的,目前尝试如果是通过特定方法进行测试,是无法展示测试到 guard,且最终输出也不是 guard 在成功或者失败情况下的返回

查找了资料没有找到类似的对 guard 的单元测试,望赐教

阅读 2.8k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题