AnyString() als parameter für unit-test

Habe ich, um mit einer legacy-Anwendung, hat keine tests. So, bevor ich anfange refactoring-ich möchte sicherstellen, dass alles funktioniert, wie es ist.

Nun stellen Sie sich folgende situation vor:

public SomeObject doSomething(final OtherObject x, final String something) {
    if(x == null) throw new RuntimeException("x may not be null!");
    ...
}

Nun möchte ich testen, ob null-check, so sicher sein, es funktioniert und ich nicht verlieren ich es mal umgestalten.

Also ich habe das

@Test(expected = RuntimeException.class)
public void ifOtherObjectIsNullExpectRuntimeException() {
    myTestObject.doSomething(null, "testString");
}

Nun, das funktioniert natürlich.

Aber anstelle von "testString" ich würde Sie gerne weitergeben, in einer zufälligen Zeichenfolge.

Also habe ich versucht mit:

@Test(expected = RuntimeException.class)
public void ifOtherObjectIsNullExpectRuntimeException() {
    myTestObject.doSomething(null, Mockito.anyString());
}

Aber ist dies nicht erlaubt., wie bekomme ich

org.mockito.Ausnahmen.missbrauchen.InvalidUseOfMatchersException:
... Sie nicht verwenden können, argument-Matcher außerhalb von überprüfungen oder stubbing

Ich verstehe den Sinn, aber ich Frage mich, ob ich noch weiter kann, das zu tun, was ich will, ohne Parametrierung mein test oder ähnliches.
Nur Bibliotheken, die ich verwenden können, Junit, AssertJ, Mockito und Powermock.

Irgendwelche Ideen?

InformationsquelleAutor Sorona | 2016-09-09

Schreibe einen Kommentar