开玩笑错误:您的测试套件必须至少包含一个测试

问题描述 投票:0回答:2

我知道这个问题已经在其他地方被问过,但就我而言,我遵循了mickael guay的笑话最佳实践视频(点击查看

但不幸的是我得到了一个笑话错误,你的测试套件必须包含至少一个测试 但紧接着就有一项测试通过了。

enter image description here

这是我的代码: [...]

const mockResponse = {
  json: jest.fn(),
  status: jest.fn().mockReturnThis(),
} as unknown as Response<any, Record<string, any>>;

describe('UsersController', () => {
  let usersController: UsersController;
  let usersService: UsersService;
  beforeEach(async () => {
    const moduleRef = await Test.createTestingModule({
      imports: [],
      controllers: [UsersController],
      providers: [
        UsersService,
        { provide: getModelToken(User.name), useValue: jest.fn() },
        { provide: getModelToken(Role.name), useValue: jest.fn() },
      ],
    }).compile();

    usersController = moduleRef.get<UsersController>(UsersController);
    usersService = moduleRef.get<UsersService>(UsersService);
    jest.clearAllMocks();
  });

  describe('findOneById', () => {
    describe('when findOneById is called', () => {
      beforeEach(async () => {
        const user: Partial<User> & Response =
          await usersController.findOneById(mockResponse, userStub().userId);
        console.log('user', user);
      });

      it('then it should call usersService', () => {
        expect(usersService.findOneById).toBeCalledWith(userStub().userId);
      });
    });
  });
});

我想也许是因为我有一个describe()嵌套在describe()中,这使得第一个describe()也等待测试? 非常感谢!

jestjs nestjs
2个回答
0
投票

编辑:当我意识到我在另一个文件夹中隐藏了另一个旧的.spec文件时,就弄清楚了。删除它解决了问题。


0
投票

当 Jest 测试中包含以下内容时,我看到了这种行为:

import { describe, it } from 'node:test';

删除该行后,测试仍然运行,但错误消失了。

© www.soinside.com 2019 - 2024. All rights reserved.