2011-11-19 44 views
2

为什么我收到此异常:为什么越来越NoSuchBeanDefinitionException而单元测试控制器

org.springframework.beans.factory.NoSuchBeanDefinitionException:类型的无 独特的豆[org.springframework.web.servlet.HandlerAdapter ] 定义:预计单豆却发现0:

public class MyControllerIntegrationTest { 
Logger logger = Logger.getLogger(MyControllerIntegrationTest.class); 
@Autowired 
private ApplicationContext applicationContext; 

private MockHttpServletRequest request; 
private MockHttpServletResponse response; 
private HandlerAdapter handlerAdapter; 
private TestExceptionController controller; 

@Before 
public void setUp() { 
    request = new MockHttpServletRequest(); 
    response = new MockHttpServletResponse(); 
    handlerAdapter = applicationContext.getBean(HandlerAdapter.class); 

    controller = new TestExceptionController(); 
} 

我试图运行上面的代码。我的应用程序上下文被加载并获取上述异常消息。请指导,我应该在bean定义文件中添加一些bean定义吗?

+0

是不是错误不言自明?您的测试环境中没有“HandlerAdapter”类型的bean。您应该向我们展示整个测试,包括课程注释,以及测试环境文件。 – skaffman

回答

0

您应该使用the ApplicationContextAware interface,或更改代码以直接注入HandlerAdapter(将@Autowired注释移至该字段),而不是从应用程序上下文中获取注释。 (除非它是一个原型,不是单例,并且每个单元测试都需要一个新实例。)