Я хотел бы провести модульное тестирование метода с несколькими внутренними вызовами в класс, который я хочу смоделировать, используя EasyMock
.
Тестовый метод фактически запускается 5 раз и вызывает проверенный метод.
Во время каждого цикла я буду создавать несколько объектов одного и того же класса (скажем, класса A).
Закрытый метод вызовет метод фиктивного объекта, который принимает экземпляр класса А., оценивает его и возвращает результат.
В конце публичный метод вернет список результатов.
Я попробовал стандарт EasyMock.expect(MockClass.method(A)).andReturn()
, но он не работает, так как нет реализации equals()
для класса A
:
// this is the method example I am trying to test
public methodToTest(){
// some logic
privateMethodToTest(x);
// some logic
}
private List<B> privateMethodToTest(int x){
List<B> list = new ArrayList<>();
List<A> all = getObjects(x); //getObjects private method
for (A a:all){
list.add(objectToMock.methodToMock(a));
return list;
}
Вот как я бы хотел, чтобы это работало:
EasyMock.createMock(ObjectToMock.class);
EasyMock.expect(ObjectToMock.methodToMock(A)/* when A.getValue() == 1 */.andReturn("B object number 1")
EasyMock.expect(ObjectToMock.methodToMock(A)/* when A.getValue() == 2 */.andReturn("B object number 2")
//... and so on
//object of class A does not implement equals()
Я не уверен, как это сделать, и мне не удалось найти аналогичный пример или ответить на мой вопрос.