Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 测试类并为依赖项而不是模拟加载真实对象_Java_Spring_Junit - Fatal编程技术网

Java 测试类并为依赖项而不是模拟加载真实对象

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

我有一个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 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不能注入依赖项。