Mah*_*n M 5 reactjs jestjs enzyme
我们jest用于嘲讽。enzyme用于在我们的应用程序中呈现。
在这里,我试图模拟URLSearchParams的get方法。
我试着用
jest.spyOn(URLSearchParams, 'get');
Run Code Online (Sandbox Code Playgroud)
但它不起作用。
我的反应课看起来像波纹管
export default class Concepts extends React.Component {
static getDerivedStateFromProps(props) {
const searchParams = new URLSearchParams(props.search);
return {
keyword: searchParams.get('q')
};
}
Run Code Online (Sandbox Code Playgroud)
我的测试如下所示
it('should be able to change the state', () => {
jest.spyOn(URLSearchParams, 'get');
const wrapper = mount(
<Concepts search="test" />
);
});
Run Code Online (Sandbox Code Playgroud)
这是正确的方法吗?还有其他方法可以做到吗?提前致谢 :)
man*_*tin 10
你有嘲笑get的URLSearchParams.prototype,如:
jest.spyOn(URLSearchParams.prototype, 'get').mockImplementation((key) => key);
Run Code Online (Sandbox Code Playgroud)
尝试这个!
jest.spyOn(URLSearchParams.prototype, "get").mockReturnValue("some value");
Run Code Online (Sandbox Code Playgroud)
这是我模拟URLSearchParams的解决方案
global.URLSearchParams = jest.fn(x => ({
get: jest.fn(y => x.includes(y) ? 'url does contain get parameter' : 'url does not contain get parameter'),
}));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5076 次 |
| 最近记录: |