我正在尝试为下面的类制作单元测试用例,但是我在运行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);
    }
}

最佳答案

您误用了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检查值。

关于java - 如何为构造函数创建测试用例,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58603618/

10-14 12:47