2016-11-30 36 views
1

我必须使用Environment接口从属性文件中获取路径。在Junits中,我无法模拟环境接口。以下是我的代码。如果我打电话给我提到的方法,我想要随机的东西。我该怎么做?如何模拟环境接口

@Mock 
    private Class object; 
@InjectMocks 
    Class2 object2; 

Mockito.when(object.getFilePath()).thenReturn("Random String"); 
+0

环境接口是您自己的接口还是来自lib的接口? – davidxxx

+0

它是框架接口... org.springframework.core.env.Environment; @davidxxx –

+0

你可以使用Spring中的MockEnvironment – davidxxx

回答

2

至于说在我的意见,你不需要的Mockito,你可以使用MockEnvironment类从春天嘲笑Environment
你可以这样设置值:

MockEnvironment environment = new MockEnvironment(); 
    environment.setProperty("yourKeyOne", "yourValue1"); 
    environment.setProperty("yourKeyTwo", "yourValue2"); 

并根据您的需求,您可以使用此环境变量。 例如,这里是与AnnotationConfigWebApplicationContext实例:

AnnotationConfigWebApplicationContext context = new AnnotationConfigWebApplicationContext(); 
    context.setEnvironment(environment); 
0

如果您正在使用的Mockito,你可以如下做到这一点。

@RunWith(MockitoJUnitRunner.class) 
class SampleMockitoTest { 

    @Mock 
    private Environment mockEnvironment; 

    @Test 
    public void sampleTest() { 
     //use mockEnvironment here 
    } 
}