如何模拟环境接口



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

@Mock
    private Class object;
 @InjectMocks
    Class2 object2;
Mockito.when(object.getFilePath()).thenReturn("Random String");

正如我在我的评论中所说的那样,您不需要Mockito,您可以使用MockEnvironment类从春季嘲笑Environment
您可以以这种方式设置值:

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

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

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

如果使用Mockito,则可以如下进行。

import static org.mockito.Mockito.when;
@RunWith(MockitoJUnitRunner.class)
class SampleMockitoTest {
    
    @Mock
    private Environment mockEnvironment;
    
    @Test
    public void sampleTest() {
        //use mockEnvironment here
        when(environment.getProperty("yourKey")).thenReturn("yourValue");
    }
}

相关内容

  • 没有找到相关文章

最新更新