2016-11-30 38 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 
    } 
}