我一直在尝试使用这个solution来判断我的Set是否使用hamcrest给定了属性的集合,但是我有:
java.lang.NoSuchMethodError: org.hamcrest.Matcher.describeMismatch(Ljava /郎/对象; Lorg / hamcrest /描述;)V 在org.hamcrest.Condition $ Matched.matching(Condition.java:52)
进口:
import static org.hamcrest.Matchers.contains;
import static org.hamcrest.Matchers.equalTo;
import static org.hamcrest.Matchers.hasProperty;
import static org.junit.Assert.assertThat;
代码:
assertThat(mySet, contains(hasProperty("id", equalTo("expectedId"))));
你有什么想法如何断言好吗?
答案 0 :(得分:1)
好吧,你应该试着让assertThat为你做的工作。
config.wrappers :inline_checkbox_two, :tag => 'div', :class => 'control-group', :error_class => 'error' do |b|
b.use :hint, :wrap_with => { :tag => 'p', :class => 'help-block' }
# everything else should use the same definition as the above
end
此处的限制:假设您的集合仅包含该属性值。
否则,您可以选择:
Set<WhateverPropertyTypeYouAreUsing> expectedSet = Collections.singleton( ... create a property object with that id/value);
assertThat(mySet, is(expectedSet))
(可能还有一条额外的消息可以更好地描述失败的断言)。
Prereq:你的属性类应该以合理的方式实现equals()。