我是 Jest 单元测试的新手。我正在 React 应用程序中测试一个组件。有两个组成部分:Home和LogOutButton
这是 Home 组件:
import 'bootstrap/dist/css/bootstrap.css';
import 'bootstrap/dist/css/bootstrap-theme.css';
import React from 'react';
import ReactDOM from 'react-dom';
import { LogOutButton } from './LogOutButton.js';
class Home extends React.Component {
displayName = Home.name;
state = {
result: 0,
val1: 0,
val2: 0,
};
handleChangeOne = event => {
this.setState({ val1: event.target.value });
};
handleChangeTwo = event => {
this.setState({ val2: event.target.value });
};
add = () => {
this.setState({
result: parseInt(this.state.val1) + parseInt(this.state.val2)
});
};
onLogoutClick = () => {
window.location.href = 'https://www.MICROSOFT.com';
}
render() {
return (
<div>
<h1>Hello world! The result is: {this.state.result}</h1>
<input type="text" onChange={this.handleChangeOne} />
+
<input type="text" onChange={this.handleChangeTwo} />
= <br />
<button onClick={this.add}>Add</button>
<br/><br/>
<LogOutButton onLogout={this.onLogoutClick} />
</div>
);
}
}
export default Home;
const rootElement = document.getElementById("root");
ReactDOM.render(<Home />, rootElement);
Home组件可以获得 2 个数字并呈现它们的总和。它还导入LogOutButton组件的位置,当单击它时,它应该将您重定向到 Microsoft 网站。
我想测试一个用户点击的场景LogOut。
这是我的建议:
describe('Home />', () => {
it('Directing to Microsoft site when LogOut is clicked', () => {
const homeWrapper = shallow(<Home />);
homeWrapper.find('LogOutButton').simulate('click');
homeWrapper.update();
expect(homeWrapper.html).toEqual('https://www.MICROSOFT.com');
});
}
这不起作用.. 我正在寻找帮助来编写正确的测试方法。提前致谢