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