У меня есть метод, который принимать строку и итератор:Mockito: как ожидать, что итератор будет равен?
public int doSomething(String str, Iterator<String> itr)
Я пытаюсь издеваться класс, где этот метод является, поэтому он будет возвращать мне целое число, в зависимости от переданных аргументов. Как я могу назвать when()
Mockito, поэтому он ожидает, что прошедший итератор будет «равен» тому, который я укажу? Как передается итератор построить где-то динамически в системе, я не могу использовать тот же экземпляр, в when()
, так что я могу только сделать копию этого как мои ожидания:
List<String> aList = new ArrayList<String>();
aList.add("one");
aList.add("two");
MyClass myMock = Mockito.mock(MyClass.class);
Я попытался следующие, и ни один из им кажется, работает:
Mockito.when(myMock.doSomething("some string", aList.iterator())).thenReturn(10);
Mockito.when(myMock.doSomething(Matchers.eq("some string"), Matchers.eq(aList.iterator()))).thenReturn(10);
Я только удалось с помощью anyObject()
:
Mockito.when(myMock.doSomething(Matchers.eq("some string"), Matchers.anyObject())).thenReturn(10);
, но тогда, конечно, я не могу установить разные результаты, отд заканчивающийся на том, что есть в итераторе ...
могли бы вы предоставить образец кода, который вы хотите сделать, чтобы работать. – kan