在我的业务逻辑中,我没有任何异常场景,不知道如何在sprint引导服务类中测试catch块。大多数场景都是在控制器级别处理的。
但是对于声纳覆盖,我需要在我的服务中覆盖捕获块。
我的示例代码如下
public void employeeDetails(Object Employee) throws CustomException {
try {
int count = commonUtils.calculateEmployeeCount(Employee)
} catch (Exception e) {
throw new CustomException(" Exception occurred", e);
}
}
我的业务逻辑是否应该有任何失败场景要测试,或者我们可以选择模拟自定义虚拟异常以进行测试。任何人都请就此提出建议。
参考文献
如何断言JUnit 4测试中抛出了某个异常?
如何在我的代码中测试try-catch块
我假设一个类EmployeeServiceImpl
使用方法void EmployeeDetails(Object Employee)
实现EmployeeService
。注意,根据代码约定,方法的名称以小写开头,因此我将在回答中遵循这种约定。
public void employeeDetails(Object employee) throws CustomException {
try {
int count = calculateEmployeeCount(employee)
} catch (Exception e) {
throw new CustomException("Exception occurred", e);
}
}
您需要实现calculateEmployeeCount
方法来抛出异常,异常可以是exception
的任何子类型。为此,您需要具有此类方法的类的实例。应该使用@MockBean
对实例进行模拟,或者如果它是我们的EmployeeServiceImpl
,则使用@SpyBean
进行部分模拟,而不是使用@Autowired
对生产bean进行模拟,其中注入的bean优先于测试bean(@MockBean
)。
假设您将Spring测试启动器与Mockito一起使用,并且具有计算表员工计数
方法的相同类(从其名称判断)。
@SpyBean
private EmployeeService employeeService;
Mockito.when(employeeService.calculateEmployeeCount())
.thenThrow(new Exception("An exception"));
最后一步是验证是否抛出了CustomException
:
Object employee = new Object(); // it doesn't need to be a mock
CustomException exception = Assertions.assertThrows(
CustomException.class,
() -> employeeService.employeeDetails(employee));
// the thrown exception is available fur further testing (of the message, cause etc.)
我正在使用和。
问题内容: 我对Java单元测试非常陌生,听说Mockito框架对于测试非常有用。 我已经开发了一个REST Server(CRUD方法),现在我想对其进行测试,但是我不知道如何? 我什至不知道该测试程序应该如何开始。我的服务器应该在本地主机上运行,然后在该URL上进行调用(例如,本地主机:8888)? 这是我到目前为止尝试过的方法,但是我很确定这不是正确的方法。 这是方法的代码。 在此测试用
问题内容: 我只想在不引导Angular的情况下测试服务。 我看了一些例子和教程,但是我什么也不会去。 我只有三个文件: myService.js:在这里定义AngularJS服务 test_myService.js:在这里定义服务的Jasmine测试。 specRunner.html:一个具有常规茉莉花配置的HTML文件,在其中导入了前两个其他文件以及茉莉花,Angularjs和angular-
我有一个服务器,用Java编写的,那是我的应用程序,我想在上面运行一些测试。我正在使用gradle来管理依赖项和构建任务等,所以我也想在这方面使用它。我需要启动服务器,然后运行我的单元测试,这会对它发出一堆HTTP请求,然后在测试完成后,理想情况下甚至关闭服务器。所以我尝试在build.gradle中添加(jettyRunWar是运行服务器的工具),但我想这太简单了,因为从不从jettyRunWa
如何使用JUnit5测试抛出NullPointerException的方法。但是我在方法中捕获到了这个异常,因此test以错误结尾:“Expected java.lang.NullPointerException to be thrown,But nothing was thrown”。 谢谢
我有一个生成屏幕截图的类: 我的应用程序是用创建的,我需要对它进行测试。但我得到 我的测试: 我试图防止无头异常: 我使用的是spring启动版本1.5.6。 但这无济于事。我得到日志: java.awt.HeadlessException在sun.awt.HeadlesStoolKit.GetScreenSize(headlesStoolKit.java:284)在org.robinhood.i