我有一个Junit单元测试,它测试类似下面的类,我想为gson而不是模拟对象加载一个真实对象,我怎么能用spring做呢?
public class TestA{
public void setUp()
{
A a = new A();
}
}
import javax.inject;
public class A{
@inject
private Gson gson;
}
我在spring-configuration / unit-test-config.xml
中定义了这个<bean id="Gson"
class="com.google.gson.Gson"
scope="singleton"/>
答案 0 :(得分:3)
您需要为测试类添加两个注释:
@Runwith(SpringJunitClassRunner.class)
@ContextConfiguration("classpath:spring-configuration/unit-test-config.xml")
第一个告诉JUnit使用支持依赖注入的spring test runner,第二个将你的XML文件注册到Spring。
你需要弹簧测试罐,你可以通过maven获得
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>3.2.6.RELEASE</version>
<scope>test</scope>
</dependency>
但是,由于您手动创建A对象,因此无法正常工作。它也必须是一个春天豆。