-2

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

4

2 回答 2

3

有几条评论暗示了这一点,但是在测试中构建以一种方式工作的语句通常是极差的做法,而当应用程序独立运行时则以另一种方式工作。这增加了应用程序通过测试但在生产中失败的可能性。

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

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

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

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

于 2013-09-05T05:49:35.130 回答
0

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

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

于 2013-09-05T05:35:51.877 回答