【发布时间】:2016-06-20 16:34:50
【问题描述】:
您好,我正在编写一个自定义匹配器来验证两个不同的对象,我的代码是:
public class DetailsMatcher extends ArgumentMatcher <Details> {
private final Details expected;
private DetailsMatcher(Details expected) {
this.expected = expected;
}
@Override
public boolean matches(Object actual) {
return ((Request) actual).getId().equals(expected.getId());
}
@Override
public void describeTo(Description description) {
description.appendText(expected == null ? null : expected.toString());
}
public static Details valueObjectEq(Details expected) {
return argThat(new DetailsMatcher(expected));
}
}
我想在我的测试中使用它:
assertThat(requestModel, DetailsMatcher.valueObjectEq(response));
但这是两个不同的对象,所以它不起作用。我不想仅仅为了测试目的而改变我的对象,所以我们是否有一些像 assertThat 这样的 api,它允许传递不同的对象以简单地依赖于匹配的输出,而不是强制实际和预期的相同类型?
【问题讨论】:
标签: java mockito matcher hamcrest