Java 如何在Spring Boot中模拟ApplicationContext.getAutowireCapableBeanFactory
我正在尝试测试一个POST请求,它应该会将一个pdf文件发送给我。 在POST请求中,是使用BeanFactoryAnnotationUtils生成的bean,方法为qualifiedBeanOfType。 参数:Java 如何在Spring Boot中模拟ApplicationContext.getAutowireCapableBeanFactory,java,spring-boot,mockito,javabeans,Java,Spring Boot,Mockito,Javabeans,我正在尝试测试一个POST请求,它应该会将一个pdf文件发送给我。 在POST请求中,是使用BeanFactoryAnnotationUtils生成的bean,方法为qualifiedBeanOfType。 参数: BeanFactory BeanFactory是一个可自动连接的BeanFactory。这是嘲笑 使用@MockBean 类beanType是内部接口 字符串限定符为“application/pdf” 问题: 当我尝试测试此POST请求并执行命令时: BeanFactoryAnn
- BeanFactory BeanFactory是一个可自动连接的BeanFactory。这是嘲笑 使用@MockBean
- 类beanType是内部接口
- 字符串限定符为“application/pdf”
BeanFactoryAnnotationUtils.qualifiedBeanOfType(beanFactory、beanType、qualifier)代码>
将引发异常:
org.springframework.web.util.NestedServletException:请求处理失败;嵌套异常为org.springframework.beans.factory.NoSuchBeanDefinitionException:没有名为“application/pdf”的bean可用:找不到与bean名称“application/pdf”匹配的ProfileReportGenerator bean!(注意:不支持限定符匹配,因为给定的BeanFactory未实现ConfigurableListableBeanFactory。)
我知道问题在于如何实例化BeanFactorybean。但我无法解决它
测试代码:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration
public class MyControllerTest {
@MockBean
private AutowireCapableBeanFactory beanFactory;
}
致以最良好的祝愿,
Luis是否应该有一个名为application/pdf
的bean?对于Spring Boot,您使用@SpringBootTest
+@RunWith(SpringRunner.class)
而不是使用的两个注释。application/pdf
更像是一个内容类型头,而不是一个beanqualifier@Tobb是否应该有一个名为application/pdf的bean?不,这是内容类型。但它用于创建bean,该bean将用于创建pdf文件。你需要更多的信息吗?我会尽量尝试你的第二个选择well@alainlompo确切地说,它用于创建一个bean,该bean将用于pdf创建。您需要更多信息吗?是的,您可以共享相应的配置吗?