Java 测试类并为依赖项而不是模拟加载真实对象
我有一个Junit测试,它测试一个类,如下所示,我想为gson加载一个真实的对象,而不是一个模拟对象,我如何使用spring实现这一点Java 测试类并为依赖项而不是模拟加载真实对象,java,spring,junit,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配置/unit-test-config.xml中定义了这一点 <bean i
public class TestA{
public void setUp()
{
A a = new A();
}
}
import javax.inject;
public class A{
@inject
private Gson gson;
}
我在spring配置/unit-test-config.xml中定义了这一点
<bean id="Gson"
class="com.google.gson.Gson"
scope="singleton"/>
您需要在测试类中添加两个注释:
@Runwith(SpringJunitClassRunner.class)
@ContextConfiguration("classpath:spring-configuration/unit-test-config.xml")
第一个命令告诉JUnit使用支持依赖注入的spring测试运行程序,第二个命令将XML文件注册到spring
为此,您需要spring测试jar,您可以通过maven获得它
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>3.2.6.RELEASE</version>
<scope>test</scope>
</dependency>
org.springframework
弹簧试验
3.2.6.1发布
测试
但它不会像那样工作,因为您需要手动创建对象。它也必须是Springbean。您需要向测试类添加两个注释:
@Runwith(SpringJunitClassRunner.class)
@ContextConfiguration("classpath:spring-configuration/unit-test-config.xml")
第一个命令告诉JUnit使用支持依赖注入的spring测试运行程序,第二个命令将XML文件注册到spring
为此,您需要spring测试jar,您可以通过maven获得它
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>3.2.6.RELEASE</version>
<scope>test</scope>
</dependency>
org.springframework
弹簧试验
3.2.6.1发布
测试
但它不会像那样工作,因为您需要手动创建对象。它也必须是Springbean。您需要向测试类添加两个注释:
@Runwith(SpringJunitClassRunner.class)
@ContextConfiguration("classpath:spring-configuration/unit-test-config.xml")
第一个命令告诉JUnit使用支持依赖注入的spring测试运行程序,第二个命令将XML文件注册到spring
为此,您需要spring测试jar,您可以通过maven获得它
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>3.2.6.RELEASE</version>
<scope>test</scope>
</dependency>
org.springframework
弹簧试验
3.2.6.1发布
测试
但它不会像那样工作,因为您需要手动创建对象。它也必须是Springbean。您需要向测试类添加两个注释:
@Runwith(SpringJunitClassRunner.class)
@ContextConfiguration("classpath:spring-configuration/unit-test-config.xml")
第一个命令告诉JUnit使用支持依赖注入的spring测试运行程序,第二个命令将XML文件注册到spring
为此,您需要spring测试jar,您可以通过maven获得它
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>3.2.6.RELEASE</version>
<scope>test</scope>
</dependency>
org.springframework
弹簧试验
3.2.6.1发布
测试
但它不会像那样工作,因为您需要手动创建对象。它也必须是一个spring bean。那么,a也必须是spring bean吗?是的,在这里阅读更多关于这个主题的内容:谢谢Sean,你能解释一下为什么吗?如果可能的话,请简而言之。@Phoenix spring不知道它自己没有创建的对象。通过
new
创建的对象从来都不是Spring管理的,hhence不能注入依赖项。因此,A也必须是Spring bean?是的,在这里阅读更多关于主题的内容:谢谢Sean,你能解释一下为什么吗?简言之,如果可能的话?@Phoenix Spring不知道它自己没有创建的对象。通过new
创建的对象从来都不是Spring管理的,hhence不能注入依赖项。因此,A也必须是Spring bean?是的,在这里阅读更多关于主题的内容:谢谢Sean,你能解释一下为什么吗?简言之,如果可能的话?@Phoenix Spring不知道它自己没有创建的对象。通过new
创建的对象从来都不是Spring管理的,hhence不能注入依赖项。因此,A也必须是Spring bean?是的,在这里阅读更多关于主题的内容:谢谢Sean,你能解释一下为什么吗?简言之,如果可能的话?@Phoenix Spring不知道它自己没有创建的对象。通过new
创建的对象从不由Spring管理,hhence不能注入依赖项。