Java 如何在Spring Boot中模拟ApplicationContext.getAutowireCapableBeanFactory

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

我正在尝试测试一个POST请求,它应该会将一个pdf文件发送给我。 在POST请求中,是使用BeanFactoryAnnotationUtils生成的bean,方法为qualifiedBeanOfType。 参数:

  • BeanFactory BeanFactory是一个可自动连接的BeanFactory。这是嘲笑 使用@MockBean
  • 类beanType是内部接口
  • 字符串限定符为“application/pdf”
问题: 当我尝试测试此POST请求并执行命令时:

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创建。您需要更多信息吗?是的,您可以共享相应的配置吗?