我想运行这行代码:
assertThat(contextPin.get(), equalTo(pinPage.getPinObjFromUi()));
但我想打印到日志中以提供信息
这意味着我可以知道哪些字段不相等。
所以我想到了实现一个匹配器。
我用谷歌搜索过,但无法正确书写
因为我的方法无法得到actual
and 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;
}
}
尝试更多类似这样的事情:
package com.mycompany.core;
import org.hamcrest.Description;
import org.hamcrest.TypeSafeMatcher;
public class PinMatcher extends TypeSafeMatcher<Pin> {
private Pin actual;
public PinMatcher(Pin actual) {
this.actual = actual;
}
@Override
protected boolean matchesSafely(Pin item) {
return actual.title.equals(item.title);
}
@Override
public void describeTo(Description description) {
description.appendText("should match title ").appendText(actual.title);
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)