2015-11-05 82 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); 
     } 

    } 
    }