gpt4 book ai didi

java - JMockit自动将Array转换为ArrayList

转载 作者:行者123 更新时间:2023-12-02 03:26:46 24 4
gpt4 key购买 nike

我正在使用 JMockit 中的本地方法来模拟 DAO 方法。实际的 DAO 方法返回一个 List,而本地模拟方法返回一个订单数组。(这不是有意的设计,由于重构时的疏忽,我最终得到了这个)。但是,这仍然可以很好地编译并且(不幸的是)通过了测试用例。

虽然我后来更正了我的模拟方法以与实际的 DAO 方法相匹配,但我想知道 JMockit 如何让我这样模拟。怎么会不匹配返回类型呢?这是一个功能还是一个错误!

@Test
public void testApplyTemplate() throws Exception {
new Expectations() {

{
orderDAO.getOrders();
result = getOrdersMock();
}
};
myService.applyTemplate();
new Verifications() {

{
...
}
};
}

private Order[] getOrdersMock() {
Order[] ordersArray = null;
// create 9 dummy orders, o1 to o9
orderArray = new Order[] { o1, o2, o3, o4, o5, o6, o7, o8, o9 };
return orderArray;
}

public interface OrderDAO {

List<Order> getOrders();
}

最佳答案

这是一项功能,在 API documentation 中对此进行了描述。对于结果字段(第五段):

Assigning a value whose type differs from the method return type will cause an IllegalArgumentException to be thrown, unless it can be safely converted to the return type. One such conversion is from an array to a collection or iterator.

关于java - JMockit自动将Array转换为ArrayList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38746837/

24 4 0