我在eclipse上做一个项目,使用tomcat、maven、spring、hibernate和struts。我们有 2 个应用程序:包含所有 bean(服务)的核心和带有操作视图等的 web。
我对服务进行了 JUnit 测试,并决定尝试对 Actions 进行一些测试。这是我正在尝试做的一个例子:
行动
@Action(value = "/modif/register")
@ResultPath("...")
public class A{
@Autowired
private ExampleService exampleService;
public String execute(){
Example = exampleService.find(...);
...
...
}
}
测试
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = Config.class)
public class ATest extends StrutsSpringTestCase {
@Before
public void setUp(){
try {
super.setUp();
} catch (Exception e) {
e.printStackTrace();
}
}
@Test
public void testExecute() throws Exception{
request.setParameter(...);
//filling up the request
ActionProxy proxy = super.getActionProxy("/modif/register");
A register = (A) proxy.getAction();
String result = proxy.execute();
}
}
配置
@Configuration
@ComponentScan(basePackages = {"web","core"} )
public class Config {
//configuration
}
每次我尝试启动此测试时,我都会遇到此错误ActionProxy proxy = super.getActionProxy("/modif/register");
org.springframework.beans.factory.BeanCreationException:创建名为“web.action.A”的bean时出错:注入自动装配的依赖项失败;嵌套异常是 org.springframework.beans.factory.BeanCreationException:无法自动装配字段:public core.service.ExampleService web.action.A.exampleService;嵌套异常是 org.springframework.beans.factory.NoSuchBeanDefinitionException:没有为依赖项找到类型为 [core.service.ExampleService] 的合格 bean:预计至少有 1 个 bean 有资格作为此依赖项的自动装配候选者。依赖注解:{@org.springframework.beans.factory.annotation.Autowired(required=true)}
不管我打电话给哪个 bean,我都收到了这个错误。它们都在核心应用程序和我的操作中工作,我什至可以在我的测试中直接调用它们而不会出现任何错误,但每次我尝试启动测试时它都会失败。
有谁知道什么可能引发这个异常?