java – 创建这样的测试是否有意义?

最近我正在深入进行单元测试,我有点卡住了.

例.我们有这样的方法:

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

其中大部分取决于clientData返回的内容.有两种可能性:

>如果找不到文本参数,则返回null
>返回字符串值,如果有的话

嗯…我已经创建了两个测试但是想知道是否有任何意义来进行这样的测试?在这种情况下你会做什么?

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

最佳答案 既然你有硬编码的checkOut我会说是的,我们在我们的产品中进行了这种测试 – 称为“安全网”测试,如果有人在UI方面改变了这个参数,我们想在测试中失败,而不是真实码.

点赞