@Autowired在每次JUnit测试时给出不同的对象

时间:2014-01-24 01:42:10

标签: spring junit

我有一个名为 TestedClass 的类,使用 @Service(“service”)进行注释。
我想在我的JUnit测试类中注入这个类。

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"classpath:/META-INF/spring/applicationContext.xml"})
public class JUnitTest { 

@Autowired
TestedClass testedClass;

@Test
public void test() {
    System.out.println(testedClass.toString());
}

然后我启动服务器并运行 JUnitTest 类。
我认为在每次测试时输出应该相同而不停止服务器。但它打印出不同的结果。

TestedClass@1ed4b47
TestedClass@12f9e9

为什么?

1 个答案:

答案 0 :(得分:0)

如果您多次运行测试,则会注入不同的bean实例。运行测试后,第一个bean将被销毁。再次运行测试时,必须创建一个新实例(单例)。测试框架将在每次测试运行时启动一个IOC容器,bean将不会在多次运行中持续存在。