模拟 React 组件中使用的 class 函数
Mock a class function used inside a React component
我正在尝试模拟一个在我的 React 组件中调用的函数。这是一个示例,其中包含函数 getContent()。我如何在测试中设置自己的 return 值?
Component.test.tsx :
describe('TEST', () => {
it('test', () => {
...
expect.assertions(1);
renderer = render(<MyComponent></MyComponent>)
expect(renderer.toContain('myValue'))
}
)}
MyComponent.tsx :
export const MyComponent = (props) => {
const externalClass = new classFromAnotherFile()
const content = externalClass.getContent()
return (
<View>
content={content}
</View>
}
AnotherFile.tsx
export class classFromAnotherFile {
constructor(...){}
getContent(): string { ... }
}
随便找解决方案,文档里的所有解决方案,最后一个是好的:
const getContentMock = jest
.spyOn(YourClass.prototype, 'getContent')
.mockImplementation(() => {
console.log('mocked function');
});
我正在尝试模拟一个在我的 React 组件中调用的函数。这是一个示例,其中包含函数 getContent()。我如何在测试中设置自己的 return 值?
Component.test.tsx :
describe('TEST', () => {
it('test', () => {
...
expect.assertions(1);
renderer = render(<MyComponent></MyComponent>)
expect(renderer.toContain('myValue'))
}
)}
MyComponent.tsx :
export const MyComponent = (props) => {
const externalClass = new classFromAnotherFile()
const content = externalClass.getContent()
return (
<View>
content={content}
</View>
}
AnotherFile.tsx
export class classFromAnotherFile {
constructor(...){}
getContent(): string { ... }
}
随便找解决方案,文档里的所有解决方案,最后一个是好的:
const getContentMock = jest
.spyOn(YourClass.prototype, 'getContent')
.mockImplementation(() => {
console.log('mocked function');
});