报告对可以迁移到 Hamcrest 声明式样式 Assert.assertThat() 调用的 Assert.assertEquals()Assert.assertTrue() 等方法的调用。

示例:


  public class SubstantialTest {
    @Test
    public void testContents(Collection<String> c, String s) {
      Assert.assertTrue(c.contains(s));
      Assert.assertEquals(c, s);
      Assert.assertNotNull(c);
      Assert.assertNull(c);
      Assert.assertFalse(c.contains(s));
    }
  }

为执行迁移提供了快速修复:


  public class SubstantialTest {
    @Test
    public void testContents(Collection<String> c, String s) {
      assertThat(c, hasItem(o));
      assertThat(o, is(c));
      assertThat(c, notNullValue());
      assertThat(c, nullValue());
      assertThat(c, not(hasItem(o)));
    }
  }

此检查要求类路径上有可用的 Hamcrest 库。

使用静态导入匹配程序的方法选项,可指定是否希望该快速修复静态导入 Hamcrest 匹配程序方法。