我一直在抓我的头,试图找到一种方法来测试哪些道具被传递到我编写的反应组件中。见示例:
FirstName.js
export default FirstName = (props) => {
return (
<Select value={props.value} />
);
}Select.js
export default Select = (props) => {
return (
<div>props.value</div>
);
}我想要编写的测试是针对FirstName组件的,我希望确保值支柱被传递到值属性中。
但是,目前我可以验证这一点的唯一方法是断言Select.js的输出,这不是我正在测试的单元的一部分,所以我真的不想让FirstName.test.js文件依赖于Select.js内部发生的更改。
我听说过的一个解决方案是使用jest.mock('path/to/Select.js')或
jest.mock('../moduleName', () => {
return {
__esModule: true,
default: jest.fn(),
};
});但是,由于某些原因,Select是模拟函数,但是FirstName.js内部的并不是,因此出于某种原因,它为测试而不是为运行中的代码存根。
有什么想法吗?
发布于 2020-02-21 07:01:24
你能试试下一种方法吗?
import FirstName from '../src/FirstName';
describe('<FirstName />', () => {
const mockProps = { name: 'name', };
it('Check Select props', () => {
const wrapper = shallow(<FirstName {...mockProps} />);
expect(wrapper.find('Select').props()).toBe(mockProps);
});
});https://stackoverflow.com/questions/60333380
复制相似问题