如何为构造函数创建测试用例

时间:2019-10-29 08:24:26

标签: java junit

我正在尝试为下面的类制作单元测试用例,但是我在运行mvn clean test时遇到异常,我不明白是什么问题,有人可以帮助我如何解决此问题

错误

[ERROR] Errors: 
[ERROR]   ApplicationErrorHandlerTest.setUp:41 InvalidUseOfMatchers 
Misplaced or misuse...

课程

public class BadRequestException extends Exception {

    private static final long serialVersionUID = 1L;

    public BadRequestException() {
        super();
    }

    public BadRequestException(final String message) {
        super(message);
    }
}

测试用例

public class ApplicationErrorHandlerTest {

    @Test
    public void BadRequestExceptionTest() throws Exception  {
        BadRequestException badRequestException1 = new BadRequestException();
        BadRequestException badRequestException2 = new BadRequestException(ArgumentMatchers.anyString());
        assertNotNull(badRequestException1);
        assertNotNull(badRequestException2);
    }
}

2 个答案:

答案 0 :(得分:2)

您滥用ArgumentMatchers.anyString()

对于您的用例,您不需要它,您可以传递任何字符串,并检查其值是否正确传递给message字段,例如:

   public class ApplicationErrorHandlerTest {

        @Test
        public void BadRequestExceptionTest() throws Exception  {
            BadRequestException badRequestException1 = new BadRequestException();
            Strign testMessage = "testMessage";
            BadRequestException badRequestException2 = new BadRequestExceptiontestMessage);
            assertNotNull(badRequestException1);
            assertNotNull(badRequestException2);
            assertEquals(testMessage, badRequestException2.getMessage());
        }
   }

关于ArgumentMatcher-当您通过嘲笑模拟实例时应使用它。请在official documentation中查看更多详细信息。

在您的示例中,您没有使用Mockito进行任何模拟,仅使用Asserts检查值。

答案 1 :(得分:0)

使用@Parameters批注创建一组输入数据以运行我们的测试。

You can follow the working example here.

相关问题