最近我正在更深入地进行单元测试,并且有点卡住了。
示例。我们有这样的方法:
boolean isCheckOutChecked(NmCommandBean clientData) {
return "checkOut".equalsIgnoreCase(clientData.getTextParameter("checkOut"));
}
大多数情况取决于clientData
返回什么。有两种可能性:
好吧...我创建了两个测试,但是想知道进行这样的测试是否有意义?在这种情况下,您将做什么?
@Test
void shouldReturnTrueWhenCheckoutIsChecked() {
doReturn("checkOut").when(clientData).getTextParameter("checkOut");
boolean checkOutChecked = formProcessor.isCheckOutChecked(clientData);
assertTrue(checkOutChecked);
}
@Test
void shouldReturnFalseWhenCheckoutIsNotChecked() {
doReturn(null).when(clientData).getTextParameter("checkOut");
boolean checkOutChecked = formProcessor.isCheckOutChecked(clientData);
assertFalse(checkOutChecked);
}
答案 0 :(得分:1)
由于您已经对checkOut
进行了硬编码,所以我会说是的,我们在我们的产品中进行了此类测试-称为“安全网”测试,以防万一有人在UI端更改该参数,我们希望测试失败,而不是真实代码。
答案 1 :(得分:0)
在有条件/分支的地方,进行单元测试非常有用,因此所有基本场景都包含在单元测试用例中。这样可以减少反馈时间(无需部署应用程序来测试条件),并有助于加快开发速度。