2014-01-24 59 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 **。 –