惩戒ES6类方法
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了惩戒ES6类方法相关的知识,希望对你有一定的参考价值。
我测试的明确应用程序,我有以下文件:
app.js
const express = require('express');
const path = require('path');
const apiRouter = require('./api');
const app = express();
app.use('/api',apiRouter);
module.exports = app;
api.js
const Router = require( 'express').Router;
const CompanyController =require( './CompanyController');
const router = Router();
router.route('/company/registration').post(CompanyController.register);
module.exports=router;
CompanyController.js
class CompanyRegistration {
constructor() {}
static async register(req, res) {
//some implementations
//if successfull returns status code 200 or 422 if cant process
}
registration.js
import Request from 'supertest';
import app from './app';
import CompanyController from './CompanyController';
const mockComp = jest.fn();
CompanyController.mockImplementation(()=>{
return {
register:mockComp
}
});
it("should work",()=>{
return Request(app).post("/api/company/registration").then(response => {
expect(response.statusCode).toBe(200)
});
});
什么我试图做的是模拟在CompanyController寄存器方法和改变实现,使其返回200状态码,但我得到的错误:
类型错误:_CompanyController.default.mockImplementation不是一个函数
如何实现这一正确的方法是什么?
答案
如果你想使用mockImplementation
你需要告诉玩笑说CompanyController
需要被嘲笑(如描述here):
import CompanyController from './CompanyController';
jest.mock('./CompanyController'); // you miss this line
const mockComp = jest.fn();
CompanyController.mockImplementation(()=>{
return {
register:mockComp
}
});
以上是关于惩戒ES6类方法的主要内容,如果未能解决你的问题,请参考以下文章