如何使用JUnit 4指定人类可读的测试名称(在IDE和测试报告中显示)?
理想情况下,通过自动转换实际测试名称。
答案 0 :(得分:5)
我认为“人类可读的名字”主要是指带有空格的测试名称。
我最喜欢的解决方案是使用下划线代替空格。这是与IDE一起很好地协同工作的唯一解决方案。例如。只需单击鼠标,即可从测试执行面板跳转到测试。
@Test
public void the_server_accepts_connections_with_password() {
...
}
请查看FakeSftpServerRuleTest以获取使用此样式的完整测试类。
还有其他解决方案,但所有这些解决方案都要求您编写自己的Runner。
您可以构建一个支持类似于JUnit Jupiter的@DisplayName注释的Runner。
您可以构建一个Runner,将测试方法名称的下划线转换为测试显示名称的空格。
这些解决方案的问题在于IDE无法再将测试结果与测试方法相关联。
警告:不要这样做!
只是为了完整。有various space characters in Unicode,其中一些可以是Java中方法名称的一部分。您可以使用它们编写测试名称。您仍然有适当的IDE支持。不过:不要这样做。代码的读者不会意识到这种魔力而变得绝望。