JMock — несколько вызовов с разными аргументами

Метод, который я хочу протестировать, вызывает фиктивный метод с другими аргументами:

public void methodToTest(){
   getMock().doSomething(1);
   getMock().doSomething(2);
   getMock().doSomething(3);
}

В моем модульном тесте я хочу знать, действительно ли methodToTest вызывает эти методы именно с такими аргументами. Вот код, который я написал:

@Test
public void myMockTest(){
    oneOf(mock).doSomething(1);
    oneOf(mock).doSomething(2);
    oneOf(mock).doSomething(3);
}

В (2) я получаю "Неожиданный вызов" - как будто он не может различать разные аргументы. Итак, я попробовал это:

exactly(3).of(mock).doSomething(with(Matchers.anyOf(same(1), same(2), same(3))));

Но это также не дало того, что я ожидал.

Наконец, это сработало:

exactly(3).of(mock).doSomething(with(any(Integer.class)));

Итак, я знаю, что мой метод вызывался 3 раза с любымцелым числом. Есть ли способ убедиться, что это точноаргумент(ы), которые я передал?

6
задан Darek Kay 1 June 2012 в 15:23
поделиться