不支持从“描述”中返回承诺。测试必须同步定义

Dev*_*per 4 javascript node.js jestjs

特定测试通过了,但是我明白了。

    console.log node_modules/jest-jasmine2/build/jasmine/Env.js:502
          ? 

Test suite failed to run

            Returning a Promise from "describe" is not supported. Tests must be defined synchronously.
            Returning a value from "describe" will fail the test in a future version of Jest.

        > 4 | describe('handlers.getSemesters', async () => {
Run Code Online (Sandbox Code Playgroud)

这是完整的测试代码

describe('handlers.getSemesters', async () => {
      it('should return an array of Semesters', async () => {
        academicCalendarRequest.request = jest.fn();
        academicCalendarRequest.request.mockReturnValue([
          {
            description: 'Semester1',
          }
        ]);
        const expected = [      
          {
            description: 'Semester1',
          },
        ];

        const handlers = new Handlers();
        const actual = await handlers.getSemesters();
        expect(actual).toEqual(expected);
      });
    });
Run Code Online (Sandbox Code Playgroud)

我该如何解决?

Kir*_*eck 8

更改

describe('handlers.getSemesters', async () => {
Run Code Online (Sandbox Code Playgroud)

describe('handlers.getSemesters', () => {
Run Code Online (Sandbox Code Playgroud)

  • 恩解释为什么他应该这样做会很棒。 (2认同)
  • 该文档提供了有关定义异步测试的更多信息:https://jestjs.io/docs/en/troubleshooting#defining-tests (2认同)