【发布时间】:2020-05-31 15:28:49
【问题描述】:
我是 Java 和 JUnit 技术的新手,我不明白为什么我不能在 src/main 类中为 src/test 中的类创建实例?
例如:
我的 JUnit 跑步者在第二个模块的 src/main 中(我对第一个模块有依赖)。 用于过滤测试的 JUnit 运行器需要 MethodSelector 对象,但在构造函数中我必须放置 Class javaClass、String methodName 参数。当我尝试从 src/test 在 src/main 中为我的测试类创建实例时,我无法导入此类...
我知道在 src/main 中创建测试实例时它不是最佳实践,但我的运行器必须是控制台应用程序,所以如果我理解得很好,它应该在 src/main 中? 在过去的两周里,我还没有看到没有类实例和方法名参数的过滤测试的另一种方法。
我试着这样做
def class = Class.forName("package.from.src.test")
但我总是遇到 java.lang.ClassNotFoundException 错误。
有人可以帮忙吗?谢谢
【问题讨论】:
-
你没有理由从你的 main 访问测试类,所以你应该修复你的设计。为什么您的 JUnit 运行器在 main 中而不是在 test 中?它不是应用程序代码,所以它在错误的地方。在
test下进行测试。 -
JUnit runner 和其他助手在 src/main 因为我想创建控制台或服务应用程序。据我所知,您无法从 src/test 路径创建 widnows 服务或控制台应用程序?
-
Junit runner 不应成为您服务的一部分。它只是用于运行测试
-
tim_yates 你能解释你的答案为什么吗?
-
因为这就是它的目的...我猜你可以使用它...就像你可以用铲子盛食物...这不是完成的事情,也不是创作者所涵盖和测试的目的。你能想出一个简单的例子来说明你正在尝试做什么吗?也许我们可以提供更好的建议?