我想测试一个对象的特定字段是否与我指定的值匹配。在这种情况下,它是S3Bucket对象内部的存储桶名称。据我所知,我需要编写一个自定义匹配器来实现:
mockery.checking(new Expectations() {{
one(query.s3).getObject(with(
new BaseMatcher<S3Bucket>() {
@Override
public boolean matches(Object item) {
if (item instanceof S3Bucket) {
return ((S3Bucket)item).getName().equals("bucket");
} else {
return false;
}
}
@Override
public void describeTo(Description description) {
description.appendText("Bucket name isn't \"bucket\"");
}
}), with(equal("key")));
...
}});
希望有一种更简单的方法来完成这个任务,比如说:
mockery.checking(new Expectations() {{
one(query.s3).getObject(
with(equal(methodOf(S3Bucket.class).getName(), "bucket")),
with(equal("key")));
...
}});
有人能给我指点一下类似的东西吗?我想在这种情况下已经解决了我的问题,但这不是我第一次希望有一个更简单的方法。