umgehen Ich verwende ts-jest
und jest
meine Testdateien mit Typoskript schreiben.wie mit Jest Mock Funktion eines Moduls und Typoskript Typ
Ich bin verwirrt, wie man die Scheinfunktion eines Moduls eingibt.
Hier ist mein Code:
./module.ts
:
import {IObj} from '../interfaces';
const obj: IObj = {
getMessage() {
return `Her name is ${this.genName()}, age is ${this.getAge()}`;
},
genName() {
return 'novaline';
},
getAge() {
return 26;
}
};
export default obj;
./module.test.ts
:
import * as m from './module';
describe('mock function test suites',() => {
it('t-1',() => {
// I think the jest.Mock<string> type here is not correct.
m.genName: jest.Mock<string> = jest.fn(() => 'emilie');
expect(jest.isMockFunction(m.genName)).toBeTruthy();
expect(m.genName()).toBe('emilie');
expect(m.getMessage()).toEqual('Her name is emilie, age is 26');
expect(m.genName).toHaveBeenCalled();
});
});
wie m
die Mock-Funktion genName
von Modul geben?
typescript
geben Sie mir einen Fehler hier: Error:(8, 7) TS2540:Cannot assign to 'genName' because it is a constant or a read-only property.