我想運行此行代碼:如何實現hamcrest匹配器
assertThat(contextPin.get(), equalTo(pinPage.getPinObjFromUi()));
,但我想打印到日誌翔實
這意味着我可以知道哪些領域不等於。
所以我想到實現一個匹配器。
我用Google搜索,但不能把它寫正確
我的方法不能得到actual
和expected
對象組合在一起。
這是我的代碼:
我該怎麼寫它乾淨?
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;
}
}
請看看源代碼的一些內置的Hamcrest匹配。它們向您展示如何覆蓋matchesSafely和describeTo。 –