gpt4 book ai didi

javascript - 使用 jest/enzyme 模拟模块功能

转载 作者:行者123 更新时间:2023-12-02 23:52:58 25 4
gpt4 key购买 nike

以下答案:Jest -- Mock a function called inside a React Component

我有这个测试(尝试模拟 fireAnalytics 导入的函数,如下所示:

mytest.test.js

<小时/>
`.import { fireAnalytics } from "@module/js-utils/lib";
jest.mock('@module/js-utils/lib', () => ({ fireAnalytics: jest.fn(() => 'hello!') }))`

`

  it('renders component', () => {
const WrappedMyComponent = hoc(Foo);
const props = {};


const wrapper = mount(
<WrappedMyComponent {...props} />
);
const event = {
// target: {
// id: 'test'
// }
};
// simulate click should call `handleInputClick`
wrapper.find('input').props().onClick(event);`

组件

import { fireAnalytics } from "@module/js-utils/lib";

handleInputClick(e) {
// I need to mock this function. But currently the test
goes here and asks for the e.target.id
fireAnalytics({
event: "",
category: "",
action: `Clicked on the ${e.target.id} input`,
label: ""
});

// rest of the code ....
}

测试运行时出错

   TypeError: Cannot read property 'id' of undefined

248 | event: "",
249 | category: "",
> 250 | action: `Clicked on the ${e.target.id} input`,
251 | label: ""
252 | });
253 |

如有任何帮助,我们将不胜感激。

最佳答案

您需要使用 enzyme simulate功能。在输入测试中模拟点击:

...

wrapper.find('input').simulate('click')

关于javascript - 使用 jest/enzyme 模拟模块功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55561062/

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