java使用Mockito在另一个类中模拟类方法
我正在尝试使用Mockito/JUnit为如下函数编写单元测试:
class1 {
method {
object1 = class2.method // method that I want to fake the return value
// some code that I still want to run
}
}
Mockito中是否有任何方法可以存根class2的结果。方法我试图提高class1的代码覆盖率,所以我需要调用它的实际生产方法
我查看了MockitoAPI的spy方法,但这会覆盖整个方法,而不是我想要的部分
# 1 楼答案
我想我理解你的问题了。让我重新表述一下,您有一个函数,您正试图测试它,并且想要模拟在该函数中调用的函数的结果,但是在另一个类中。我用下面的方法处理了这个问题
这是在用@Before注释包装的函数中设置我希望class2中的函数如何响应给定的特定输入。然后,在实际测试中,我只是在我想要测试的类中调用我要测试的函数。在本例中,是myClass。functionCall()正在正常运行,您没有覆盖它的任何方法,但您只是在模拟它从MyClass2中的方法(或方法)获得的输出
# 2 楼答案
这对我很有效:
# 3 楼答案
我写了一个简单的例子,效果很好,希望有帮助:
来自Class1的method1()调用来自Class2的method2():
类2和方法2()
以及测试: