如何编写匹配Matchers匹配内容的匹配器

时间:2013-07-30 08:50:14

标签: java unit-testing junit hamcrest

好的,所以我想测试我闪亮的新火腿Matchers。

是否有匹配自定义匹配器匹配或不匹配的Matchers? 这对于为自定义匹配器编写测试非常有帮助。

2 个答案:

答案 0 :(得分:1)

我觉得您的Matcher不需要Matcher。您应该编写单元测试并使用您的Matcher

 @Test
 public void testPass(){
    assertThat(input, myMatcher);
 }


 @Test
 public void testFail(){
    assertThat(input, not(myMatcher));
 }

对于您需要测试的所有病例,请重复冲洗。

答案 1 :(得分:-1)

您可以使用org.mockito.Matchers类来存根输入。此类公开了许多方法来使用您的存根。

  • Matchers.anyString()
  • Matchers.anyInt() 等。

假设您在A类中有一个函数

class A{

public void loadFile(){
 file = new FileInputStream("/test/webapps/test.properties");
...
....
}

并且你想编写一个测试用例,你必须使用Matchers类来编写如下脚本 -

class Atest{
@Test
    public void testLoadFile()
       {
           final FileInputStream fileInputStreamMock = PowerMockito.mock(FileInputStream.class);
          PowerMockito.whenNew(FileInputStream.class).withArguments(Matchers.anyString())
                              .thenReturn(fileInputStreamMock);
}