Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在运行时检查特定方法是否由测试用例运行_Java_Maven - Fatal编程技术网

Java 如何在运行时检查特定方法是否由测试用例运行

Java 如何在运行时检查特定方法是否由测试用例运行,java,maven,Java,Maven,我正在使用Maven和TestNG。 如何在运行时区分TestNG/JUnit测试用例或主java代码调用特定方法在运行时,您的代码从不运行单元测试。除非您从代码中显式地调用它们,否则您永远不应该这样做 单元测试只能手动运行,或者在maven生命周期的测试阶段运行。有几条评论暗示了这一点,但是,在测试中以一种方式运行内置语句,而在应用程序独立运行时以另一种方式运行内置语句,这通常是非常糟糕的做法。这增加了应用程序通过测试但在生产中失败的可能性 相反,你应该看看你为什么想要做出这种区分。一般来说,

我正在使用Maven和TestNG。
如何在运行时区分TestNG/JUnit测试用例或主java代码调用特定方法在运行时,您的代码从不运行单元测试。除非您从代码中显式地调用它们,否则您永远不应该这样做


单元测试只能手动运行,或者在maven生命周期的测试阶段运行。

有几条评论暗示了这一点,但是,在测试中以一种方式运行内置语句,而在应用程序独立运行时以另一种方式运行内置语句,这通常是非常糟糕的做法。这增加了应用程序通过测试但在生产中失败的可能性

相反,你应该看看你为什么想要做出这种区分。一般来说,这将是为了某些依赖对象,或由于某种类型的输入。在这些情况下,最好让类接受通过配置和测试插入到其中的依赖对象,唯一改变的是配置。被测试的类别不应将从属类别彼此区分开来。相反,只需使用它们的接口,就可以创建用于测试的模拟类

接受输入时,重定向输入源以获取脚本输入

对于数据库,重定向到为测试等配置的内存中数据库


您会发现,这种方法将极大地提高您编写的代码的质量,并降低bug通过单元测试的可能性。

您需要像jacoco或Cobertura这样的代码覆盖工具来解决XY问题。如果你需要知道这类事情,那么你试图解决的问题就有问题了。不管是谁说的,这个方法应该是一样的。伙计们,你们太苛刻了。这对皮特来说是一个很好的教育时刻,我们应该给他一个更好的方法来完成他想要做的事情,而不是批评(对我们来说)明显是一个糟糕的方法。