public StringSubject factValue(String key) {
    return doFactValue(key, null);
  }
@Test
  public void factValueFailMultipleKeys() {
    Object unused =
        expectFailureWhenTestingThat(fact("foo", "the foo"), fact("foo", "the other foo"))
            .factValue("foo");
    assertFailureKeys("expected to contain a single fact with key", "but contained multiple");
    assertFailureValue("expected to contain a single fact with key", "foo");
    assertFailureValue("but contained multiple", "[foo: the foo, foo: the other foo]");
  }