首页 > 解决方案 > 启动应用程序时出现“ReferenceError:未定义描述”错误

问题描述

我将使用 jest 测试 typescript(inversify) 代码。下面提到了用于测试控制器方法的代码。

describe('Test UserController',() =>{

    let userService : UserServiceImpl = new UserServiceImpl();
    let userController : UserController = new UserController(userService);
    let req, res, next;

    beforeEach(() => {
        req = httpMocks.createRequest();
        res = httpMocks.createResponse();
        next = jest.fn();

        req.authorization = 'eyJIjoxNjE0NTc2Mzc3LCJleHAiOjE2NDYxMTIzNzd9';

        jest.mock("../../service/user-service-impl");
    });   
    
    afterEach(() =>{
        jest.resetAllMocks();
    });

    it('getUser method should work properly',async() => {
        const userResponseStub : UserResponse = new UserResponse();
        userResponseStub.username = 'username';
        userResponseStub.email = 'email@test.com';
        
        jest.spyOn(userService, "getUser").mockResolvedValue(userResponseStub);
        const response = await userController.getUser(1);
        expect(response).toBe(userResponseStub);  
    });
});

下面提到package.json文件中与 jest 相关的配置

"jest": {
    "verbose": true,
    "testResultsProcessor": "jest-sonar-reporter",
    "collectCoverage": true,
    "collectCoverageFrom": [
      "src/**/*.{js,jsx,tsx,ts}",
      "!**/node_modules/**",
      "!**/vendor/**"
    ],
    "moduleFileExtensions": [
      "ts",
      "tsx",
      "js",
      "json"
    ],
    "coverageReporters": [
      "lcov",
      "text"
    ],
    "transform": {
      "^.+\\.(ts|tsx)$": "<rootDir>/preprocessor.js"
    },
    "testRegex": [
      "(/__tests__/.*|(\\.|/)(test|spec))\\.(ts?|tsx?)$"
    ]
  },
  "jestSonar": {
    "sonar56x": true
  }

测试用例运行没有任何问题。但我将使用 运行应用程序npm start,出现以下错误。

describe('Test UserController',() =>{
^
ReferenceError: describe is not defined

请帮我解决这个问题。任何帮助或解决方法都非常有用。

标签: node.jstypescriptunit-testingnestjsinversifyjs

解决方案


推荐阅读