我将使用 jest 测试打字稿(反转)代码。下面提到了用于测试控制器方法的代码。
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
请帮我解决这个问题。任何帮助或解决方法都非常有用。