我有这门课。
@Service
public class ConcurrentService{
public Map<String, Object> createList(){
this.asynCall();
}
@Async("taskExecutor")
private Future<Map<String, Object>> asynCall(){
.....
return new AsyncResult<Map<String, Object>>(mapResultMap);
}
}
我的spring配置是:
<task:annotation-driven executor="taskExecutor" mode="aspectj" />
<bean id="taskExecutor" class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor">
<property name="corePoolSize" value="50" />
<property name="maxPoolSize" value="300" />
<property name="queueCapacity" value="30" />
</bean>
还有我的Mockito单元测试
@RunWith(MockitoJUnitRunner.class)
public class ConcurrentServiceTest{
@InjectMocks
private ConcurrentService concurrentService;
@Mock(name = "taskExecutor")
private ThreadPoolTaskExecutor taskExecutor;
@Test
public void test1(){
Assert.assertNotNull(concurrentService.createList();
}
}
如果我运行它,我获得了java.lang.IllegalArgumentException:必须在AnnotationAsyncExecutionAspect上设置BeanFactory,才能访问来自org.springframework.scheduling.aspectj.AbstractAsync执行Aspect.ajc$左右$org_springframe work_scheduling_aspectj_AbstractAsync Executionaspect的合格执行器“taskExecution”
如果我删除了注释中的限定符,只留下
@Async
,那么这个测试会完美运行,但是如果我添加@Async(“taskExecutor”)
我相信Spring不需要运行,因为这只是单元测试,我可以做什么来禁用Mockito中的aop,或者我应该做什么来使用名称“taskExecutor”
在mode=“aspectj”
中
<task:annotation-driven executor="taskExecutor" mode="aspectj" />
您正在使用Aspectj编织,需要使用Aspectj maven-plugin
在编译时编织方面。要在运行时将Spring的AOP默认框架与代理一起使用,请更改为
<task:annotation-driven executor="taskExecutor" />
我的服务: 考虑注入bean作为其接口之一,或者通过在@enableAsync和/或@enablecaching上设置ProxyTargetClass=true强制使用基于CGLIB的代理。 我试着在application.properties中设置'spring.aop.proxy-target-class=true'并设置'@enableAsync(Proxytarget-class=true
我在单元测试下面的Spring MVC控制器方法: 上面的自定义注释()基本上是由以下方面建议的: 如果抛出了一个,则会启动以下控制器建议异常处理程序: 现在,以下是我如何尝试测试上述控制器方法: 测试系统地失败了,下面的堆栈跟踪: 我不确定我和莫奇托有什么问题... 注意,我确实在路径中指定了,这表明我的模拟应该在方面中返回true,并允许控制器方法继续。然而,事实并非如此。 谁能帮忙吗?
不确定这里遗漏了什么,但console.log()行打印的是“promise{}”,而不是响应中的JSON正文。 我认为我在async/await中做错了什么。 我的代码(快速): 感谢任何帮助。
我试图理解为什么下面两个代码块会产生不同的结果。 代码块1按预期工作,并返回从数据库中查找的提供程序的数组。另一方面,代码块2返回函数数组。在理解promissione.all()和async/await时,我觉得缺少了一些简单的东西。 代码块的差异如下: > 块1:创建许诺函数数组,然后使用map运算符将其包装在异步函数中。 块2:许诺函数的数组被创建为异步函数。因此,不调用map运算符。 如果
我正在做一个应用程序使用flutter框架。在此过程中,我遇到了Dart和中的关键字。谁能告诉我它们有什么不同吗?
问题内容: 我直到今天才开始了解Mockito。我写了一些简单的测试(使用JUnit,请参见下文),但是我不知道如何在Spring的托管bean中使用模拟对象。什么是使用Spring的最佳实践。我应该如何向我的bean注入模拟依赖项? 你可以跳过这一步,直到回到我的问题。 首先,我学到了什么。这是一篇很好的文章Mocks Are n’t Stubs,它解释了基础知识(Mock的检查行为验证而不是状