【发布时间】:2014-12-17 00:14:12
【问题描述】:
是否可以模拟在我正在单元测试的类中实例化的类?
class ClassToTest {
public String methodToTest(object a, object b, object c) {
//Do Lots of cool stuff here
SomeOtherClass someOtherClass = new SomeOtherClass();
someOtherClass.doMoreCoolStuff(a, b, c, this);
//Do even more cool stuff to "this" as it was updated by someOtherClass
}
我想模拟将用于 int ClassToTest 的 SomeOtherClass。我正在使用 EasyMock,但我似乎无法编译它。有任何想法吗?我要解决这个问题了吗?想法?
【问题讨论】:
-
我不认为你可以模拟这个类,除非你使用非常晦涩的 Java 黑魔法。按照设计,你应该避免实例化这样的类,而是应该关联类,这样它们的耦合度就会降低。当您移动到关联时,您就可以模拟周围的对象。在您的情况下,您可以将实例化的类和方法调用视为方法中的私有调用,然后您不会对其进行模拟,而只是将其作为 methodToTest 测试的一部分进行测试。