JUnit@Ignore有用性?

2022-09-02 23:31:09

在 JUnit 中,您可以使用 before 方法告诉测试运行程序自动跳过这些测试。从我收集到的信息来看,这实际上只是一种方便的方式来记录/标记您以后想要返回的不完整/不再起作用的测试。@Ignore

那么我说,在运行时,测试,没有注释的方法和注释掉的方法之间没有区别,我说得对吗?(假设这些测试都是独立的。有没有办法在 Netbeans 上的 JUnit 中获取忽略的测试用例的列表?如果不是,那么标签到底有多大用处,因为测试失败可能更有用,所以它不会被忽视?@Ignore@Ignore


答案 1

那么我说得对吗,在运行时,@Ignore测试,没有注释的方法和注释掉的方法之间没有区别?

d方法可以通过反射找到。没有注释的方法不能(或者,确切地说,它不能被确定地标识为被忽略的测试方法),并且注释掉的方法甚至不会进入字节码。@Ignore

虽然我不认为找到d方法运行时会有很大的实际价值,但生成统计信息/报告可能很有用。@Ignore

@Ignore标签到底有多大用处

我能想到的一件事是可搜索性。您可以轻松识别源代码中的所有注释,而未注释或注释掉的测试则不那么容易找到。@Ignore

通过测试可能更有用,这样它就不会被忽视了吗?

如果你想(并且能够)立即修复它,那么让它失败是可以的。有些情况下你不能,但你仍然想方法在身边,正是为了让它不会被遗忘。那就说得通了。@Ignore


答案 2
  • 没有注释的方法最有可能是实用工具方法,可能被测试中的其他方法使用。

  • 注释掉的方法是完全隐藏的。

  • 但是,您可以使用来指示您正在暂时禁用测试。如果有一段大型且复杂的代码段正在转换中,则可能需要在该代码失败时暂时禁用某些测试,尤其是在运行该代码的机制作为某个较大的回归套件的一部分运行时。该属性将提醒您(或您的 QA 团队)还有更多工作要做。@Ignore@Ignore

    请记住,'d测试仍然是实时代码,可以通过反射看到甚至执行,而注释掉的代码则不能。这也意味着当你重构其他代码时,它们也会被更新,API中的语法中断将显示在那里。因此,即使使用 set 进行测试也可以积极地提高代码质量。@Ignore@Ignore

  • JUnit 4 TestRunners 会将 'd 测试显示为 'skiped',这样你最终可以看到有多少测试通过/失败/跳过。@Ignore

尽管您的 Netbeans 副本可能无法充分利用@Ignore,但我可以向您保证,它不是 JUnit 测试的唯一使用者。


推荐