С новым Assert грамматики, при проверке идентичности, можно было бы написатьПочему assertThat (map1, sameInstance (map2)) не разрешено?
Assert.assertThat(obj1, CoreMatchers.sameInstance(obj2))
вместо
Assert.assertSame(obj1, obj2)
Я пытаюсь утверждать идентичность карты. Итак, я пишу
Assert.assertThat(map1, CoreMatchers.sameInstance(map2))
где карта типа HashMap<String,String>
Но мои тесты не во время компиляции:
Error:(33, 9) error: no suitable method found for assertThat(Map,Matcher<Map<String,String>>)
method Assert.<T#1>assertThat(String,T#1,Matcher<? super T#1>) is not applicable
(cannot infer type-variable(s) T#1
(actual and formal argument lists differ in length))
method Assert.<T#2>assertThat(T#2,Matcher<? super T#2>) is not applicable
(cannot infer type-variable(s) T#2
(argument mismatch; Matcher<Map<String,String>> cannot be converted to Matcher<? super Map>))
where T#1,T#2 are type-variables:
T#1 extends Object declared in method <T#1>assertThat(String,T#1,Matcher<? super T#1>)
T#2 extends Object declared in method <T#2>assertThat(T#2,Matcher<? super T#2>)
Error:(33) error: no suitable method found for assertThat(Map,Matcher<Map<String,String>>)
Почему не JUnit (или Hamcrest) выяснить, какие согласовани использовать?
Является 'map1' сырой' Map' или 'Map'? Если это сырая «карта», ее, вероятно, не должно быть. –
user2357112
Неудача во время выполнения? Это похоже на ошибку времени компиляции. Как объявляются «map1» и «map2»? – Jesper
Упс! Он не работает во время компиляции. –