ZBLOG

@Component public class ConfigData { private static Environment env; @Autowired private Environment env2; @PostConstruct void init(){ env = env2; } public static String getProperty(String name ,String def...

好的,可以使用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()方法,并对返回结果进行断言验证。

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=4453

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?