下面是我对线程池执行器的配置-
@Configuration
@EnableAsync
public class AsyncConfig {
@Bean(name = "asyncExecutor")
public Executor asyncExecutor() { //should not return null
ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
executor.setCorePoolSize(30);
executor.setMaxPoolSize(30);
executor.setQueueCapacity(1000);
executor.setThreadNamePrefix("Async-");
executor.initialize();
return executor;
}
}
我需要写一个相同的单元测试。我知道如何写服务和控制器的单元测试,但作为一个新手,我不确定在配置的情况下测试什么。例如,在上面的代码中,我可以验证函数的返回值不为空。但我也不知道如何做,因为我在项目中没有调用“asyncExecutor”函数的位置。我所做的一切就是用
@Async("asyncExecutor")
请帮我这个,也任何其他的东西,我可以测试相同的
1条答案
按热度按时间nnvyjq4y1#
您可以使用JUnit和Mockito为该配置Bean编写单元测试。
莫奇托要嘲笑
ThreadPoolTaskExecutor
在前面的测试中,您创建了一个模拟
ThreadPoolTaskExecutor
对象并将其传递给MyService
类,然后在MyService
类上调用一个异步方法并检查执行器是否用于执行异步任务。