我正在使用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);
})
成分</ P>
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>
)
}
}
答案 0 :(得分:1)
对于被测单元,您应该至少具有尽可能多的测试(可区分)状态。如果有两种状态(isLoading为true或false),那么你还需要两个测试,每个测试对应一种状态。
换句话说,更正式:单位的测试次数应该大于或等于单位的圈复杂度。