小编bil*_*ill的帖子

jest:模拟包含命名和默认导出的导入

我有一个实用程序文件,其中包含许多导出以及默认导出.命名和导出默认值都在同一个组件中使用.我无法确定如何针对同一测试中的命名和默认组件编写测试.

下面的代码以简化的方式说明了应用程序.如果我遗漏了一些重要的东西,请告诉我.谢谢!

utils.js

export const mock1svc = () => {
  return true;
};

const mock2svc = () => {
  return true;
};

export default mock2svc;
Run Code Online (Sandbox Code Playgroud)

comp.js (fyi,app呈现罚款)

import Utils, { mock1svc } from 'utils';
...
render (
    <p>{mock1svc()}</p>
    <p>{Utils()}</p>
)
Run Code Online (Sandbox Code Playgroud)

comp-test.js
我可以测试默认导出:

jest.mock('../mock-utils', () => jest.fn());

生成错误: TypeError: (0 , _mockUtils.mock1svc) is not a function

或测试命名导出:

jest.mock('../mock-utils', () => ({
  mock1svc: jest.fn(),
  mock2svc: jest.fn(),
}));
Run Code Online (Sandbox Code Playgroud)

生成错误: TypeError: (0 , _mockUtils.default) is not a function

我尝试了各种方法,但都失败了.

非常感谢您提供的任何帮助!

法案

mocking jest

7
推荐指数
1
解决办法
83
查看次数

React 测试库:测试发送到模拟子组件的 props

使用 jest 和 React 测试库。

这看起来很基本,但我却错过了它。如何模拟子组件,但测试父组件是否使用正确的 props 调用它?在本例中,我想测试parent.js并模拟子组件。

父.js

import Child from './child'
const Parent = (props) => {
  const {firstname} = props;

  <Child name={firstname} />
}
Run Code Online (Sandbox Code Playgroud)

测试.js

import Parent from '../parent'
jest.mock('./child');

it('should render properly'), () => {
   render(<Parent firstname='bob'/>);
   expect('child').toBeCalledWith({ name: 'bob' });
}
Run Code Online (Sandbox Code Playgroud)

mocking reactjs jestjs react-testing-library

6
推荐指数
1
解决办法
2万
查看次数

标签 统计

mocking ×2

jest ×1

jestjs ×1

react-testing-library ×1

reactjs ×1