TypeError:使用JEST单元测试无法读取NodeJS中未定义的属性“ apply”

时间:2020-01-31 21:49:48

标签: node.js api unit-testing jestjs

我是开玩笑的单元测试以及NodeJS的新手,我正在尝试使用以下代码测试我的API。

const request = require('supertest');
const quick_registration = require('../../../routes/register/quick_registration_of_user')

describe('Quick Registration of users', () => {
    beforeAll(() => {
        con.connect();
    });

    describe("GET / ", () => {
        test("It should respond with an array of students", async () => {
          const response = await request(quick_registration).get("/api/quickregistration");
          expect(response.status).toBe(200);
        });
      });
})

但是测试不断失败,并向我抛出错误

 FAIL  tests/routes/register/quick_registration_of_user.test.js
  Quick Registration of users
    GET /
      × It should respond with an array of students (20ms)

  ● Quick Registration of users › GET /  › It should respond with an array of students

    TypeError: Cannot read property 'apply' of undefined

      at node_modules/express/lib/router/index.js:635:15
      at next (node_modules/express/lib/router/index.js:260:14)
      at Function.handle (node_modules/express/lib/router/index.js:174:3)
      at Server.router (node_modules/express/lib/router/index.js:47:12)

Test Suites: 1 failed, 1 total
Tests:       1 failed, 1 total
Snapshots:   0 total
Time:        1.649s, estimated 2s
Ran all test suites.
Jest did not exit one second after the test run has completed.

This usually means that there are asynchronous operations that weren't stopped in your tests. Consider running Jest with `--detectOpenHandles` to troubleshoot this issue.

1 个答案:

答案 0 :(得分:1)

我假设这行

Collections.sort(grade, Collections.reverseOrder())

要求您在其中定义路由器的文件。您需要改为在定义应用程序的位置提供文件。