我是java新手,必须测试类。
对于一个非常复杂的类,我需要一个mock对象,其中一些属性是对象,而这些属性又有其他对象等等,所以对我来说,手动生成mock对象是一项艰巨的工作
我想知道是否有一种方法可以自动生成那个模拟对象,但不仅如此,还可以用一些任意值自动填充该对象的所有属性。
有人能帮我一下吗?
我将在这里举一个例子,以确保我清楚地表明了自己。。。
class A {
int a;
B b;
C c;
}
class B {
int x;
C k;
}
class C {
String x;
int x;
}
我想模拟一个A类的对象。
我希望mockA对象具有所有可能字段的值,例如B类的x字符串。。。
Mockito和RETURNS_DEEP_STUBS选项可能是您想要的。更重要的是,mockito似乎经常默认返回合理的值。
链接文档中的示例用法,供快速参考:
Foo mock = mock(Foo.class, RETURNS_DEEP_STUBS);
// note that we're stubbing a chain of methods here: getBar().getName()
when(mock.getBar().getName()).thenReturn("deep");
// note that we're chaining method calls: getBar().getName()
assertEquals("deep", mock.getBar().getName());