Je veux exécuter cette ligne de code:comment mettre en œuvre un hamcrest matcher
assertThat(contextPin.get(), equalTo(pinPage.getPinObjFromUi()));
mais je veux imprimer le journal informatif
ce qui signifie que je pourrais savoir quels champs ne sont pas égal.
J'ai donc pensé à implémenter un matcher.
Je l'ai googlé, mais n'a pas pu l'écrire correctement
que ma méthode ne pouvait pas obtenir les objets actual
et expected
ensemble.
voici mon code:
comment puis-je écrire propre?
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;
}
}
S'il vous plaît consulter le code source de certains intégré Hamcrest matcher. Ils vous montrent comment remplacer les matchsSafely et describeTo. –