测试一个类并为依赖项加载一个真实对象而不是mock

时间:2014-01-04 19:35:41

标签: java spring junit

我有一个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"/> 

1 个答案:

答案 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对象,因此无法正常工作。它也必须是一个春天豆。