【发布时间】:2020-03-30 03:03:16
【问题描述】:
我对 Mockito 很陌生。如果我的问题听起来很愚蠢,我深表歉意。我有一个独立的 JAVA 应用程序,我必须使用 JUnit 和 Mockito 编写单元测试用例。重要的是我无法更改代码,因为它是由其他人编写的,并且集成测试已经完成。我试图搜索类似的问题,但找不到任何东西。在类似的问题中提出的解决方案,没有用:(
我附上了流程控制图。我想模拟依赖类。例如,当我对“Class 1 --> Method 1”进行单元测试时,我想模拟“Class 2 中的方法 2”的输出而不调用它。我曾尝试使用 Mockito.when 和 Mockito.doReturn。两者都调用依赖方法。
有人可以建议我一些想法来实现这一点吗?
//Pseudocode of Class 1
public class Class1 {
public boolean method1() {
Class2 c2 = new Class2();
boolean b1 = c2.method2();
}
}
//Pseudocode of Class 2
public class Class2 {
public boolean method2() {
Class3 c3 = new Class3();
boolean b2 = c3.method3();
}
}
... Likewise same for Class 3, 4 and 5
【问题讨论】:
-
你能分享你的测试代码吗?
-
问题是你没有使用依赖注入。如果你自己通过调用构造函数来初始化 bean,就很难模拟一个 bean。
-
这正是使用依赖注入的原因。
-
不使用 PowerMock,我没有办法做你想做的事
-
在功能齐全的实现和集成测试到位后编写单元测试是一件非常糟糕的事情。基本上,我要说的是:你做错了。或者有人强迫你做错了:(
标签: java mockito powermock stub