【问题标题】:Junit testing: Significance of fail("Not yet implemented");?Junit测试:失败的意义(“尚未实现”);?
【发布时间】:2014-02-20 14:42:53
【问题描述】:

这段代码有什么意义?

例如

@Test
    public void testGetDiameter() {
        **fail("Not yet implemented");**
    }

【问题讨论】:

    标签: java eclipse unit-testing junit


    【解决方案1】:

    使用 Eclipse IDE,如果您将生成 JUnit TestCase 存根,它将使用fail("Not yet implemented") 添加测试方法。因此,如果您忘记添加真正的实现,测试用例将失败,错误或断言错误将显示为“尚未实现”。

    因此,eclipse 存根生成器为您提供了测试用例的默认实现,该实现总是会失败,单元测试用例开发人员有责任用一些有意义的测试语句替换它。您可以将其视为TODO:

    如果您删除此语句,您的测试将通过,但实际上它不会为您做任何类型的测试,而只会增加您的测试用例的数量。

    【讨论】:

      【解决方案2】:

      你应该使用

      throw new UnsupportedOperationException("Message")
      

      如果你真的想保留它,但我会删除这个测试。现在它什么也没做,所以它是一个垃圾。

      最好不要保留垃圾代码。

      【讨论】:

      • 这对TDD很有用,表示需要实现该方法。
      • 你说得对,但那应该是寿命短的代码行。
      【解决方案3】:

      编写测试的人每次都打算让它失败,告诉运行测试的人应该有一个测试,但它还没有编写。

      也许您的工作是将其替换为通过的实现。

      【讨论】:

        猜你喜欢
        • 2016-07-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-03-29
        相关资源
        最近更新 更多