Voglio correre questa riga di codice:come implementare un hamcrest matcher
assertThat(contextPin.get(), equalTo(pinPage.getPinObjFromUi()));
ma voglio stampare il registro essere informativo
il che significa che ho potuto sapere che i campi non erano pari.
Quindi ho pensato di implementare un matcher.
Googled, ma non sono riuscito a scriverlo correttamente
come il mio metodo non ha potuto ottenere i actual
e expected
oggetti insieme.
Ecco il mio codice:
come posso scriverlo pulito?
public class PinMatcher extends TypeSafeMatcher<Pin> {
private Pin actual;
private Object item;
public PinMatcher(Pin actual) {
this.actual = actual;
}
@Override
protected boolean matchesSafely(Pin item) {
return false;
}
@Override
public void describeTo(Description description) {
}
//cannot override this way
@Override
public boolean matches(Object item){
assertThat(actual.title, equalTo(expected.title));
return true;
}
//cannot access actual when called like this:
// assertThat(contextPin.get(), new PinMatcher.pinMatches(pinPage.getPinObjFromUi()));
@Override
public boolean pinMatches(Object item){
assertThat(actual.title, equalTo(expected.title));
return true;
}
}
Si prega di guardare il codice sorgente di alcuni built-in Hamcrest matcher. Ti mostrano come sovrascrivere le partite in modo appropriato e descriverti. –