【发布时间】:2018-06-18 18:10:58
【问题描述】:
我正在使用 tdd,但我不确定我应该测试相反的情况还是只测试预期的情况。
测试 1
test('should render loading placeholder if isloading = true', () => {
const wrapper = shallow(
<OrderDetails id="10" />
);
wrapper.setState({ isLoading: true });
expect(wrapper.find(LoadingPlaceholder).length).toBe(1);
})
测试 2
test('should not render loading placeholder if isloading = false', () => {
const wrapper = shallow(
<OrderDetails id="10" />
);
wrapper.setState({ isLoading: false});
expect(wrapper.find(LoadingPlaceholder).length).toBe(0);
})
组件
export default class OrderDetails extends PureComponent {
state = {
isLoading: true,
}
props: Props;
render() {
return (
<div>
{this.state.isLoading && (
<LoadingPlaceholder />
)}
</div>
)
}
}
注意如果只添加第一个测试可以通过这个测试,例如 意外通过测试
export default class OrderDetails extends PureComponent {
state = {
isLoading: true,
}
props: Props;
render() {
return (
<div>
<LoadingPlaceholder />
</div>
)
}
}
【问题讨论】:
-
您想测试您的代码是否能够处理意外情况。如果可能发生某些事情,例如从您的银行帐户中提取更多的钱,那么您希望生成错误或异常。此代码应编写 TDD 测试以确保其正常工作。
标签: reactjs unit-testing testing tdd jestjs