我目前正在调查我们遇到的 JPA 问题。对于这个问题,我在脑海中想出了两种可能的解决方案。我编写了一组单元测试来展示每个解决方案如何解决问题。在测试每个解决方案时,我发现其中一个不起作用。
现在我想记录为什么该特定解决方案无法完成这项工作。我可以重写我当前拥有的单元测试以期待异常。然而,异常(exception)情况只是该解决方案的根本问题的症状。因此,我创建了一个新的单元测试,它清楚地表明了该解决方案与 JPA 规范相冲突的地方。不过,我想保留其他失败的测试作为此类解决方案可能出现的症状的文档。所以我可以禁用它们并在它们上放置 javadoc 说它们由于特定的测试用例而被禁用。
请注意,我不希望测试用例失败。否则我也可以使用 assumes .
是否有其他方法可以记录不需要执行的许多测试,因为它们会由于记录真正问题的另一个测试成功而失败?
我的解决方案只能使用 junit。
编辑:
关于到目前为止的评论和答案,我更喜欢类别,因为如果有人希望执行它们,测试仍然可以在不进行任何更改的情况下执行。我仍然关心的是代表问题症状的测试与真正原因之间的更紧密的关联。目前,这只是从症状测试到真正原因测试的 javadoc 链接。
最佳答案
使用@Ignore ,并附有一条消息:
@Test
@Ignore("This fails because of a problem with the specification")
public void testWhichFails() {
}
该测试不会运行,您也会知道原因。
关于java - 如何记录某些测试用例故意失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14643277/