如何模拟环境接口

时间:2016-11-30 06:53:08

标签: java testing junit mockito

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

@Mock
    private Class object;
 @InjectMocks
    Class2 object2;

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

2 个答案:

答案 0 :(得分:4)

正如我在评论中所说,你不需要Mockito,你可以使用MockEnvironment类来模拟Spring的Environment
您可以这样设置值:

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

根据您的需要,您可以使用此环境变量。 例如,这是一个AnnotationConfigWebApplicationContext实例:

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

答案 1 :(得分:0)

如果您使用Mockito,可以按照以下步骤进行操作。

@RunWith(MockitoJUnitRunner.class)
class SampleMockitoTest {

    @Mock
    private Environment mockEnvironment;

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