编程语言
首页 > 编程语言> > java – 如果在jUnit测试中发生需求验证,它是否正确

java – 如果在jUnit测试中发生需求验证,它是否正确

作者:互联网

我有这个逻辑来检查java文件内容并验证它是否有注释,该注释说明该文件的作者(不一定是创建者) – 项目的特殊要求.

我使用Junit编写了一个单元测试来检查逻辑,它工作正常.

并且我希望所有.java文件都遵守该标准,并且如果其中至少有一个不符合该标准,则会使构建失败.

到目前为止,我有我的Junit测试方法来执行以下操作,

>读取应用程序中的所有.java文件内容
>对于每个内容,检查它是否包含具有标准格式的注释
>如果测试用例中至少有一个没有使用这种格式的评论(以便最终构建失败),则使测试用例失败

这是正确的方法吗?它将达到目的,但使用Junit测试进行一些验证工作是一种很好的做法.

如果没有,我应该使用什么样的方法来分析(使用我的逻辑 – 我有一个带有逻辑的Analyzer.java文件)构建时间内的所有文件,如果所有文件都符合要求的标准,则构建成功.

编辑:
代码评论检查只是一个验证.有几项检查需要完成. (例如:变量名应该以给定的后缀结束,模式使用一些内部库等等)所有场景都在该逻辑中处理(Analyzer.java).只需要检查所有java文件内容并使用该逻辑来验证它们.

可以肯定地说,我有一个java库,并且在调用接受文件名的方法时,检查(fileName),它将分析文件并在传递一些不可见的逻辑时返回true.如果返回false,则构建失败.因为我需要在构建失败的情况下使构建失败,所以我在jUnit测试中使用它来检查代码库中的所有.java文件.

如果这可以通过静态代码分析工具完成(但需要使用我所拥有的逻辑),那么它也是可以接受的.但我不知道现有的静态代码分析器是否支持这种自定义验证.

解决方法:

Is that approach I’m using correct ? … is it a good practice to use junit test to do some verification work

不可以.单元测试用于检查代码单元的完整性,确保单元的行为正常工作.您不应该在单元测试中检查注释/文档.

Since I need to fail the build if something is not right..

您需要在构建过程中添加更多步骤,更具体地说,是静态分析步骤.

单元测试被视为构建步骤,以及编译,执行和部署.您的项目需要一个额外的步骤,这将带我到以下…

您可以使用build tool(例如Apache Ant)为项目的构建添加步骤.虽然静态分析没有捆绑(这只是一个构建自动化工具),但它确实允许您确保自定义构建步骤的构建失败失败.

话虽如此,您可以添加一个触发静态分析程序的步骤. This page包含使用Ant创建多个构建步骤的示例,包括静态代码分析和错误检查.您甚至可以创建自己的分析器来使用.

有关构建工具和更多信息,请参阅自动化:

StackOverflow: What is a Build Tool?

Wiki: Software Build > Build Tools

Wiki: Build Automation

标签:java,unit-testing,junit,static-analysis,analyzer
来源: https://codeday.me/bug/20190623/1266251.html