显然,mock.mockRestore()没有恢复使用jest.mock()创建的模拟的原始实现。
// a.js
export default class A {}
// b.js
import A from './a';
export default class B extends A {}
// test.js
import A from './a';
import B from './b';
jest.mock('./a');
jest.mock('./b');
const b = new B(
我想模拟身份验证中间件函数,使其始终只调用next()。为了尝试实现这一点,在将身份验证中间件功能添加到app.js中的应用程序之前,我在测试文件的开头添加了以下内容。 jest.mock('../../middleware/auth.js', () =>
// ensure func is mocked before being attached to the app instance
jest.fn((req, res, next) => next()) // seems to only work for first request that hits
我想测试我的反应应用程序和模拟后端调用。我决定用返回常量的Jest函数替换fetch。
问题是我不能覆盖默认的fetch值。我在googled上搜索了一堆,发现global.fetch = ...覆盖了fetch,但我不确定全局是什么意思。我试着在我的测试文件中编写var fetch = ...,但是没有工作,尽管组件在组件的范围内。
我很高兴听到替代的解决方案,用于嘲弄提取。
// Does not work
import component that fetches
test(...){
var fetch = ...
<component that fetches/>
问题
我在模拟一个函数(只有一个),它是从主类中调用的另一个类导入的。我能够模拟这个函数并返回我提供的值。但是,对于随后的测试,我无法将模拟的函数恢复到正常状态。
任何帮助都将不胜感激!
框架使用: jest + ts-jest
码
~main.ts
import {SubClass} from './subclass.ts'
export class MainClass {
let sub: SubClass = new SubClass()
public async Car(){
let start = await sub.key();
return start