1

我想在运行时为我的 junit 测试用例创建测试数据。作为该活动的一部分,我选择编写一组数据夹具和一个围绕它的实现,它将创建/删除/更新测试数据。这些将从每个 Junit 类的 @before 和 @After 方法中调用——@before 用于设置测试数据,@after 用于拆除测试数据。

我已经在“test”包中编写了所有这些实现,并将主类标记为@component 和@autowired 这些新类。但是,当我运行 junit 测试时,它无法创建这些新类的实例,因此自动装配似乎不起作用。

除了在 test-config.xml 中添加以下配置之外,我不确定在自动装配之前我还需要做什么

<context:component-scan base-package="test">
</context:component-scan>

我正在使用 Spring 3.x 和 Junit 4。

- - - - -更多信息 - - - - - - -

//业务实现:

//文件位置:src/main/java/com/abc/prq

package com.abc.pqr

@Service("myservice")
public class MyService{

}

//Myservice类的Junit测试:

//文件位置:src/test/java/com/abc/pqr

 package com.abc.pqr;
 @RunWith(SpringJUnit4ClassRunner.class)
 @ContextConfiguration(locations={"classpath:/META-INF/spring/test-Config.xml"})
 public class MyServiceTest {
     @Autowired  
     private ABC abc;
 }

//数据夹具创建/删除/更新测试数据

//文件位置:src/test/java/com/abc/pqr/datafixtures

 package com.abc.pqr.datafixtures
 @Component("abc") 
 public class ABC{
     public void create(){
     } 
     public void remove(){
     } 
     public void update(){
     }
 }
4

1 回答 1

2

我认为问题是由于您没有在弹簧测试上下文中扫描正确的包这一事实引起的。该test-Config.xml文件应如下所示:

<context:annotation-config />
<context:component-scan base-package="com.abc.pqr.datafixtures" /> 

希望这可以帮助。

于 2012-11-26T12:45:21.187 回答