2015-11-05 134 views
-2

我使用的是junit和spring,也是mockito.While我們使用的是Spring,我們必須加載spring的配置文件。但是通過這樣做,我們得到了所有的真實對象。在這種情況下?使用彈簧嘲弄

如果我在使用mockito的測試用例中使用@ContextConfiguration(locations = {「classpath:/application-context.xml」}),我將從applicationContext.xml中獲取對象,這些對象將是真實的對象。

如何進行的Mockito這裏

+0

你可以試着給出更多的細節 - 問題是什麼 - 你有一些代碼要顯示嗎? –

+1

爲什麼加載單元測試的整個彈簧環境? – blank

回答

1

利用你不必使用Spring單元測試代碼。您可以使用Mockito @InjectMocks將依賴項注入到您的受測試的類中。

如果您想用Spring進行單元測試,您可以使用Spring的@ContextConfiguration註釋,並在適當的位置使用mock在測試本身中定義配置。例如:

@RunWith(SpringJUnit4ClassRunner.class) 
@ContextConfiguration 
@TestPropertySource(locations = "classpath:test.properties") 
public class SimpleServiceTest { 

    @Autowired 
    private SimpleService simpleService; 

    @Test 
    public void testMethod(){ 
      .... 
      simpleService.testMethod(); 
      .... 
    } 


    @Configuration 
    public static class Config { 


     @Bean 
     public SimpleService getSimpleService() { 
      return new SimpleService(); 
     } 

     @Bean 
     public MockedService getMockedService() { 
      return Mockito.mock(MockedService.class); 
     } 

    } 
    }