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

时间:2013-09-05 00:26:48

标签: java maven

我正在使用Maven和TestNG。 如何在运行时区分TestNG / JUnit测试用例或主java代码调用特定方法

2 个答案:

答案 0 :(得分:3)

有几条评论暗指这一点,但是一般来说,构建可以单向测试的语句,以及应用程序独立运行时的另一种方法是非常糟糕的做法。这会增加应用程序通过测试的可能性,但会降低生产效率。

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

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

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

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

答案 1 :(得分:0)

在运行时,您的代码从不运行单元测试。除非你从你的代码中明确地调用它们,否则你永远不应该这样做。

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