ich diese Codezeile ausgeführt werden soll:wie ein hamcrest implementieren Matcher
assertThat(contextPin.get(), equalTo(pinPage.getPinObjFromUi()));
aber ich möchte das Protokoll informativ
was bedeutet, dass ich weiß, könnte drucken, welche Felder nicht waren gleich.
Also habe ich gedacht, einen Matcher zu implementieren.
Ich habe es gegoogelt, aber kann es nicht richtig
als meine Methode die actual
und expected
Objekte zusammen bekommen konnte nicht schreiben.
hier ist mein Code:
wie kann ich es sauber schreiben?
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;
}
}
Bitte schauen Sie auf den Quellcode einiger eingebauten in hamcrest Matcher. Sie zeigen Ihnen, wie Sie matchesSafely und describeTo überschreiben. –