2014-01-24 32 views
0

我有一个名为TestedClass的类,它用@Service(“service”)注释。
我想在我的JUnit测试类中注入这个类。@Autowired在每次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类。
我认为输出应该在每次测试时都是一样的,不要停止服务器。但它打印出不同的结果。

[email protected] 
[email protected] 

为什么?

+0

你的问题不完整。通常你不会启动一个服务器(无论你是指“服务器”)来运行单元测试。你必须提供更多细节。 – mrembisz

回答

0

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

+0

其实我想测试已经在** JUnitTest **类中注入了** testedClass **对象。但是这两个对象不一样。 –

+0

@PyaeThuAung但你是否多次运行测试? –

+0

是的。但是我没有通过这段代码获得已注入的对象** testClass **。 –