【问题标题】:How to write description in Junit?如何在Junit中写描述?
【发布时间】:2020-12-10 18:08:17
【问题描述】:

我正在使用Test Driven Development 方法来编码和测试各种模块。


我想做什么? : 我想为我所有的测试用例写一些描述,这样任何人都可以轻松阅读。

我现在如何写描述?

@Test
@DisplayName("Description about my test case.")
public void addTwoObjects_onInvalidMapping_shouldReturnAnError(){
  .
  . 
  .
}

我不想写描述怎么办?:我不想用cmets写代码描述。



另外,我不想使用我目前在 JUNIT5 中使用的 DisplayName() 注释。因为根据我的理解,这个注释是为了重命名技术功能名称,而不是为了编写描述。
参考:

测试类和测试方法可以通过@DisplayName 声明自定义显示名称— 带有空格、特殊字符甚至表情符号 — 将显示在测试报告中以及由测试运行程序和 IDE [2]


这个问题类似于JUnit test description,但有两个区别:(a) 询问当前一代的 JUnit 5,以及 (b) 明确要求放置冗长描述的位置,而不是简单地重命名测试方法的名称.

【问题讨论】:

  • 你想对描述做点什么吗?
  • @johanneslink 我想为我的测试用例写描述。所以,万一公司里有人可能有新的实习生来。他会了解代码在做什么,即使非技术人员也会从描述中得到一些理解。更重要的是,有时我什至忘记了:) 一个月后我的测试用例是什么。虽然函数名有助于记忆,但没有给出清晰的画面。
  • @ZahidKhan - I want to write description to my test cases. So, that in case if anyone in company maybe new intern comes. He will get some insights what the code is doing even the non technical staff will get some understanding from the description.... - Javadoc 仅用于此目的。如果您不想使用它,那是您的问题; Java 不会因为这种奇怪的喜好而改变。
  • 我必须同意,您的测试源代码(而不是您的应用程序源代码)中的 Javadoc 似乎适合我。您是否知道 Java 带有生成格式良好的网页 (HTML) 的工具,就像您在 Java API documentation 中看到的那样?我建议您编辑您的问题以解释 Javadoc 如何无法满足您的需求。并查看Wikipedia to learn more about Javadoc
  • @ArvindKumarAvinash 我在编写我的编码部分时使用 javadocs。但是当我编写测试用例时,我相信在 Junit 中应该有一些注释可以用于这种情况。测试(JUNIT)和编码(JAVA)应该分开。

标签: java unit-testing junit tdd junit5


【解决方案1】:

您对DisplayName 注释是正确的。其目的是提供一个比方法名称更易读的名称。该名称旨在通过提供用户界面以监视测试运行的工具来获取。该注释不适用于冗长的描述和注释。

Javadoc

Java 中的Javadoc 工具使您能够在源代码中附加冗长的描述和注释。 Java 包含一些工具,可以提取 Javadoc 的内容,以用自动生成的 HTML 编写的格式良好的页面呈现。

您的 JUnit 测试是 Java 源代码。所以你的测试源代码可以携带Javadoc,就像你的应用程序源代码可以携带Javadoc一样。

您的 IDE 可能具有帮助编写 Javadoc 的功能。

你写道:

以防万一公司里有新的实习生来。他会了解代码在做什么,即使是非技术人员也会从描述中得到一些了解。

确实,这正是 Javadoc 的用途。嵌入源代码意味着您不会丢失描述和注释的内容。

您的测试源代码上的 Javadoc 似乎可以满足您的需求。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-14
    • 2012-05-09
    • 1970-01-01
    相关资源
    最近更新 更多