gpt4 book ai didi

typescript - Jest Mock + Typescript 错误 TS2339

转载 作者:搜寻专家 更新时间:2023-10-30 21:13:43 26 4
gpt4 key购买 nike

我正在用 typescript 构建一个 Express 服务器,我想使用 jest 作为我的测试框架。

根据例子,网上看到如果要mock下面的类方法:

// src/orig.ts
export class Orig {
static testFunc() {
return 'orig';
}
}

我需要创建以下文件:

// src/__mocks__/orig.ts
export class Orig {
static __fake: string = 'fake';
static testFunc() {
return Orig.__fake;
}
}

app.js 看起来像这样:

const app = require('express')();
const { Orig } = require('./src/Orig');

app.get('/', (req, res) => { res.send(Orig.testFunc()); });

module.exports = app.listen(3000);

我的测试文件应该是这样的:

// tests/test.ts
const request = require('supertest');
const app = require('../app');

import { Orig } from '../src/Orig';

jest.mock('../src/Orig');

describe('Test the mock', () => {
test('It should return the fake string', () => {
Orig.__fake = 'a fake string';
return request(app).get('/').then(response => {
expect(response.statusCode).toBe(200);
expect(response.body).toEqual('a fake string');
});
});
});

我的问题是出现以下错误:

error TS2339: Property '__fake' does not exist on type 'typeof Orig'

如何忽略/解决这个问题?还是有更好的方法在我的项目中进行模拟?

谢谢!

最佳答案

目前,我使用了以下解决方法:我调用的不是 Orig.__fake,而是 Orig['__fake']。这不是我想要的,但它确实有效。

关于typescript - Jest Mock + Typescript 错误 TS2339,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49597755/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com