Hamcrest是否包含测试运行器,还是应该使用其他框架的运行器?

时间:2018-02-18 16:15:10

标签: java junit hamcrest

我在Hamcrest项目中只发现了Hamcrest断言。

我看到的应用程序中的测试是使用JUnit runner运行的。

有没有办法用Hamcrest运行测试,还是Hamcrest不是为了这个?

1 个答案:

答案 0 :(得分:3)

Hamcrest不是一个测试框架,它是一个断言库,试图让测试更具可读性。

JUnit 4(和Hamcrest本身)提供了一个接受Hamcrest匹配器的assertThat()方法,例如:

import static org.hamcrest.Matchers.is;
import static org.junit.Assert.assertThat;

import org.junit.Test;

public class ATest {
    @Test
    public void someTest() {
        String expected = "...";

        String actual = doSomething();

        assertThat(actual, is(expected));

    }
}

因此,典型的使用模式是:

  • 使用JUnit runner
  • 运行测试
  • 使用Hamcrest的匹配器来断言您的测试是否成功(或其他)

关于Hamcrest here及其与JUnit here一起使用的更多细节。