创建这样的测试有意义吗?

时间:2018-07-30 12:23:14

标签: java unit-testing tdd ptc-windchill

最近我正在更深入地进行单元测试,并且有点卡住了。

示例。我们有这样的方法:

boolean isCheckOutChecked(NmCommandBean clientData) {
    return "checkOut".equalsIgnoreCase(clientData.getTextParameter("checkOut"));
}

大多数情况取决于clientData返回什么。有两种可能性:

  1. 如果找不到文本参数,则返回null
  2. 返回字符串值


好吧...我创建了两个测试,但是想知道进行这样的测试是否有意义?在这种情况下,您将做什么?

@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);
}

2 个答案:

答案 0 :(得分:1)

由于您已经对checkOut进行了硬编码,所以我会说是的,我们在我们的产品中进行了此类测试-称为“安全网”测试,以防万一有人在UI端更改该参数,我们希望测试失败,而不是真实代码。

答案 1 :(得分:0)

在有条件/分支的地方,进行单元测试非常有用,因此所有基本场景都包含在单元测试用例中。这样可以减少反馈时间(无需部署应用程序来测试条件),并有助于加快开发速度。