Immer die Anzahl der Aufrufe einer mock

Nehme ich testen will code wie folgt:

class ClassToTest
  //UsedClass1 contains a method UsedClass2 thisMethod() {}
  UsedClass1 foo;
  void aMethod()
  {
    int max = new Random().nextInt(100);
    for(i = 0; i < max; i++)
    {
      foo.thisMethod().thatMethod();
    }
  }
}

Wenn ich einen test wie diesen:

ClassToTest test;
UsedClass1 uc1;
UsedClass2 uc2;
@Test
public void thingToTest() {
  test = new ClassToTest();
  uc1 = mock(UsedClass1.class);
  uc2 = mock(UsedClass2.class);
  when(uc1.thisMethod()).thenReturn(uc2);
  when(uc2.thatMethod()).thenReturn(true);

  test.aMethod();

  //I would like to do this
  verifyEquals(callsTo(uc1.thisMethod()), callsTo(uc2.thatMethod()));
}

Wie bekomme ich die Anzahl der Aufrufe uc1.thisMethod() und uc2.thatMethod() so kann ich überprüfen, wurden Sie beide als die gleiche Anzahl von Zeiten?

  • Der einzige Weg, ich kann mir (jetzt) ist ein wrapper um jede Methode, die erhöht es den eigenen Zähler jedes mal, wenn es aufgerufen wird. AFAIK die jvm nicht verfolgen die Anzahl der Male jede Methode/Klasse/instanziert.
InformationsquelleAutor Ken Y-N | 2014-08-28
Schreibe einen Kommentar