有没有办法在 Java 中使用 JMock 来模拟对象构造?
例如,如果我有这样的方法:
public Object createObject(String objectType) {
if(objectType.equals("Integer") {
return new Integer();
} else if (objectType.equals("String") {
return new String();
}
}
...有没有办法在测试方法中模拟对象构造的期望?
我希望能够期望调用某些构造函数,而不是使用额外的代码来检查类型(因为它并不总是像我的示例那样复杂和简单)。
所以而不是:
assertTrue(a.createObject() instanceof Integer);
我可以期望调用某个构造函数。只是为了让它更简洁一些,并以更易读的方式表达实际正在测试的内容。
请原谅这个简单的例子,我正在处理的实际问题有点复杂,但是有期望会简化它。
更多背景知识:
我有一个简单的工厂方法,它创建包装对象。被包装的对象可能需要在测试类中难以获得的参数(它是预先存在的代码),因此很难构造它们。
也许更接近我实际寻找的是:有没有一种方法可以一举模拟整个类(使用 CGLib),而无需指定要存根的每种方法?
所以 mock 被包装在一个构造函数中,所以显然可以在上面调用方法,JMock 是否能够动态地模拟出每个方法?
我的猜测是否定的,因为那会非常复杂。但是知道我在叫错树也很有价值:-)