JUnit 4中的人类可读测试名称

问题描述 投票:2回答:1

如何使用JUnit 4指定人类可读的测试名称(在IDE和测试报告中显示)?

理想情况下通过自动转换实际测试名称。

java unit-testing junit junit4
1个回答
4
投票

我认为“人类可读的名字”主要是指带空格的测试名称。

下划线

我最喜欢的解决方案是使用下划线代替空格。这是与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支持。不过:不要这样做。代码的读者不会意识到这种魔力并变得绝望。

© www.soinside.com 2019 - 2024. All rights reserved.