0

我有一个具有文件夹结构的基本 maven 项目:-main 和 -test 目录。

我在主源目录中有一个包,它由几个类组成,比如 a.class b.class 和 c.class,它们都在同一个包下。所有类都相互依赖。为了进行适当的单元测试,并切断每个类的依赖关系,我编写了每个 a、b 和 c 类的存根类,将它们定义为具有相同的包并将它们放在测试源目录中。然后我运行: mvn test

好的,现在首先从类路径中找到存根并使用,但我想修改类路径(即时?),以便在测试 a 类时,我需要将原始 a.class 和存根用于 b .class 和 c.class。同样,在测试 b 类时,我需要将原始 b 类和用于 a.class 和 c.class 的存根。

如何使用 Maven 和 JUnit 完成此任务?

这在 Java 中有点令人沮丧,因为在 C++ 中,可以使用单元测试头文件中的 makefile 源路径和用户定义的包含路径来强制首先找到存根,然后显式将包含添加到要测试的原始类.

4

2 回答 2

0

如果你有依赖类,你应该为每个类使用接口。然后你可以实际解决依赖问题......

于 2015-08-25T09:02:34.803 回答
0

就像@khmarbaise 已经指出的那样,您走错了路。在 Java 中,如果您想测试静态方法,最好使用MockitoPowerMock等 Mocking 库。

这些库可帮助您为现有类编写存根,而无需修改类本身。检查Maven Central的 Mockito。您可以通过 maven 将其包含在内

<dependency>
    <groupId>org.mockito</groupId>
    <artifactId>mockito-core</artifactId>
    <version>1.10.19</version>
    <scope>test</scope>
</dependency>

然后使用 JUnit,你最终会为现有的类编写 Mocks。那里有很多关于 Mockito 的教程

于 2015-08-25T09:17:55.843 回答