我有两种方法:
protected List<CustomObject> getSortedOrderItems() {
List<CustomObject> internalList = new ArrayList<>();
//some operations
return internalList;
}
public CustomObject getIdentifire() {
CustomObject correctIdentifire = null;
List<CustomObject> items = getSortedOrderItems();
//some opearations on items
return correctIdentifire;
}
对于我的 Junit 测试,我需要模拟
List<CustomObject> items = getSortedItems();
作为我的自定义对象的列表
我不知道如何开始。我知道如何在正常情况下使用 Mockito,但从未做过这样的事情。 有什么帮助吗?
最佳答案
在 groovy 中,您可以简单地使用元编程直接模拟任何内容:
class SomeClass {
protected List<CustomObject> getSortedOrderItems() {
List<CustomObject> internalList = new ArrayList<>();
//some operations
return internalList;
}
}
@groovy.transform.TupleConstructor
class CustomObject { int a }
// test setup:
SomeClass.metaClass.getSortedOrderItems = {-> [ new CustomObject(1), new CustomObject(2) ] }
// test
assert [ 1, 2 ] == new SomeClass().sortedOrderItems*.a
关于java - 如何在 java/groovy 中模拟方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58917449/