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

标签 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);
}

最佳答案

因为你有硬编码的 checkOut 我会说是的,我们在我们的产品中有这些类型的测试 - 称为“安全网”测试,以防有人在 UI 端更改该参数,我们希望在测试中失败,而不是在实际代码中失败。

关于java - 创建这样的测试有意义吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51593911/

相关文章:

Java:面向对象设计;链表和栈

java - 自定义 AbstractTableModel 无法正确显示数据

c# - 是否可以使用最小起订量模拟本地初始化的对象?

python - 如何处理单元测试和 TDD(使用 python + nose)

java - 使用 JSF 获取异常的 Spring Web 流程配置

Windows keystore 和证书

javascript - Angular 单元测试服务返回 Promise Jasmine

python-2.7 - python - Flask test_client() 没有使用 pytest 的 request.authorization

java - 无法使用 Maven 执行 Junit5 测试

ruby-on-rails - 使用 RSpec 构建 TDD/BDD 帮助