好的,可以使用Mockito的静态mock功能来模拟Environment对象,并在测试方法中进行设置。
修改后的代码如下:
import static org.mockito.Mockito.*;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.mockito.runners.MockitoJUnitRunner;
import org.springframework.core.env.Environment;
@RunWith(MockitoJUnitRunner.class)
public class ConfigDataTest {
@Mock
private Environment env;
@InjectMocks
private ConfigData configData;
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
//设置环境变量值
when(env.getProperty("test_key")).thenReturn("test_value");
when(env.getProperty("null_key")).thenReturn(null);
}
@Test
public void testGetPropertyWithValue() {
String result = configData.getProperty("test_key", "default_val");
assertEquals("test_value", result);
}
@Test
public void testGetPropertyWithNullValue() {
String result = configData.getProperty("null_key", "default_val");
assertEquals("default_val", result);
}
}
在setUp()方法中,我们使用了MockitoAnnotations.initMocks(this)进行初始化,并通过when()和thenReturn()方法来设置环境变量的返回值。
然后,在测试方法中调用ConfigData类的getProperty()方法,并对返回结果进行断言验证。