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
标签:java,unit-testing,junit,static-analysis,analyzer 来源: https://codeday.me/bug/20190623/1266251.html