Ich habe einen Komponententest, der nach einem verschachtelten Kartenwert suchen muss. Ich kann meine Behauptung auf die Arbeit bringen, indem ich den Eintrag herausziehe und die zugrunde liegende Map
anpasse, aber ich suchte nach einem klaren Weg, um zu zeigen, was die Behauptung tut. Hier ist ein sehr vereinfachter Test:
Es scheint das Problem ist, dass die äußere Karte mit hasEntry(K key, V value)
verglichen wird, während ich hasEntry(Matcher<? super K> keyMatcher, Matcher<? super V> valueMatcher)
verwenden möchte. Ich bin mir nicht sicher, wie ich die Behauptung, die zweite Form zu benutzen, erzwingen soll.
Vielen Dank im Voraus.
Ich würde wahrscheinlich einen neuen Matcher dafür ausstrecken, so etwas (Vorsicht, NPEs lauern):
%Vor% Wenn du upperMap als Map<String, Map<String, Object>>
deklarierst, brauchst du den hässlichen Cast nicht. So: