【发布时间】:2014-07-22 10:12:00
【问题描述】:
我是 mockito 的新手,只是想了解它是如何工作的。
我有一个我想测试的方法。该方法实例化多个类以使用其方法。
例如
methodToTest{
class1 c1 = new class1();
class2 c2 = new class2();
class3 c4 = new class3();
c1.method1;
c2.method2;
c3.method3;
more logic
...
return result
}
我知道为了测试这个方法,我需要模拟这些类。这是否意味着我需要解耦它并将每个类作为参数传递给方法? 我想避免使用只有在模拟时才真正需要的大量参数的方法。
也许我错过了什么。
感谢您的见解。
【问题讨论】:
-
这是否意味着我需要解耦它并将每个类作为参数传递给方法?这将是解决这个问题的好方法,是的。
-
如果您的意思是“传入每个对象”,那么是的,这将是完全合理的做法。或者您可以使用工厂方法或工厂助手。在 Mockito 博客上查看 my article about this。
-
感谢 Keppil 和 David,我硬着头皮将模拟类添加为参数。我用一组较小的参数重载了该方法,以便客户端类在实时运行时不必实例化这些类。
标签: java unit-testing mockito