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对象,并在测试方法中进行设置。

修改后的代码如下:

  1. import static org.mockito.Mockito.*;
  2. import org.junit.Before;
  3. import org.junit.Test;
  4. import org.junit.runner.RunWith;
  5. import org.mockito.InjectMocks;
  6. import org.mockito.Mock;
  7. import org.mockito.MockitoAnnotations;
  8. import org.mockito.runners.MockitoJUnitRunner;
  9. import org.springframework.core.env.Environment;
  10. @RunWith(MockitoJUnitRunner.class)
  11. public class ConfigDataTest {
  12. @Mock
  13. private Environment env;
  14. @InjectMocks
  15. private ConfigData configData;
  16. @Before
  17. public void setUp() {
  18. MockitoAnnotations.initMocks(this);
  19. //设置环境变量值
  20. when(env.getProperty("test_key")).thenReturn("test_value");
  21. when(env.getProperty("null_key")).thenReturn(null);
  22. }
  23. @Test
  24. public void testGetPropertyWithValue() {
  25. String result = configData.getProperty("test_key", "default_val");
  26. assertEquals("test_value", result);
  27. }
  28. @Test
  29. public void testGetPropertyWithNullValue() {
  30. String result = configData.getProperty("null_key", "default_val");
  31. assertEquals("default_val", result);
  32. }
  33. }

在setUp()方法中,我们使用了MockitoAnnotations.initMocks(this)进行初始化,并通过when()和thenReturn()方法来设置环境变量的返回值。

然后,在测试方法中调用ConfigData类的getProperty()方法,并对返回结果进行断言验证。

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

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

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

联系我们

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

微信号:3007537140

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

关注我们
x

注册

已经有帐号?