我正在尝试为下面的类制作单元测试用例,但是我在运行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);
}
}
答案 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
批注创建一组输入数据以运行我们的测试。