Expectation of Truth.assertThat(map.getOrDefault(key,
defaultValue)).isEqualTo(expectedValue)
is unclear if the defaultValue
is
same as expectedValue
. If the test passes, its hard to say if map
contained
key, expectedValue
as an entry. Most likely, developer intended to verify that
map
doesn’t contain 'key
or perhaps map key
isn’t mapped to
defaultValue
.
Additionally, same assertion can be simplified if defaultValue
and
expectedValue
are different constants to
Truth.assertThat(map.get(key)).isEqualTo(expectedValue)
.
That is, prefer this:
public static void doSomething(Map<String, String> map, String key, String expectedValue) {
assertThat(map.get(key)).isEqualTo(expectedValue);
assertThat(map).doesNotContainKey(key);
assertThat(map).containsEntry(key, expectedValue);
}
to this:
public static void doSomething(Map<String, String> map, String key, String defaultValue, String expectedValue) {
assertThat(map.getOrDefault(key, defaultValue)).isEqualTo(expectedValue);
}
Suppress false positives by adding the suppression annotation @SuppressWarnings("TruthGetOrDefault")
to the enclosing element.