reactjs - 我无法触发点击测试使用玩笑,酶
问题描述
我不知道是什么问题,因为我还是单元测试的新手我想测试 history.push 的功能但是我如何在 onClick 上获取事件?
这是我的代码
header.js
import React from 'react'
import { useLocation as location, useHistory } from 'react-router-dom'
import {
Sticky,
Container,
Content,
Navbar,
Divmenu,
Logo,
Menutext,
} from './styling'
const Header = () => {
const history = useHistory();
const [active, setActive] = React.useState(false);
const handleHome = React.useCallback(() => {
history.push('/')
if (active === true) {
setActive(prevState => !prevState)
}
}, [history, active])
return (
<Sticky>
<Container>
<Content>
<Navbar>
<Logo src='./assets/images/logo.svg' onClick={handleHome} />
</Navbar>
<Divmenu>
<Menutext data-test="nav-bar" color={(location.pathname === '/') ? 'primary' : 'black80'} onClick={handleHome}>Beranda</Menutext>
</Divmenu>
</Content>
</Container>
</Sticky>
)
}
export default Header
header.test.js
/**
* @jest-environment jsdom
*/
import React from 'react';
import renderer from 'react-test-renderer';
import { createMemoryHistory } from 'history';
import Enzyme from 'enzyme';
import Header from './header';
test('triggers path change', () => {
const history = createMemoryHistory();
const location = { pathname: '/' };
const result = Enzyme.shallow(<Header history={history} location={ location }/>);
console.log(result)
// expect(history.location.pathname).toBe('/');
});
console.log 的结果是 object {}
谢谢您的帮助
解决方案
推荐阅读
- php - 如何链接到页面的特定部分 HTML PHP
- c# - 当后端代码中的简单键值变量工作相同时,为什么要使用 redis 作为缓存层?
- google-apps-script - Google Slides Apps 脚本检索页面中的形状
- python-3.x - 在 KNeighborsClassifier 中使用自定义指标时,我不断收到“TypeError:只有整数标量数组可以转换为标量索引”
- java - JavaFX - 在使用选项卡时将 GUI 拆分为单独的类
- jquery - 通过函数调整电子窗口大小
- scheme - 匹配方案中的括号
- android - 当我使用 adb 显示 /sys/kernel/debug/tracing/available_filter_functions 时没有这样的设备
- python - 初始化以迭代抽象pyomo模型中的集合?
- angular-cli - 运行 ng serve -o 时出现错误