• java单元测试之Mock静态方法


    1

    public final class AmountUtil {
        public static String CustomFormatWith2Digits(int amount) {
            return "1";
        }
    }

    2.引入依赖

    <dependency>
          <groupId>org.mockito</groupId>
          <artifactId>mockito-core</artifactId>
          <version>1.10.19</version>
          <scope>test</scope>
        </dependency>
    
        <dependency>
          <groupId>org.powermock</groupId>
          <artifactId>powermock-api-mockito</artifactId>
          <version>1.6.5</version>
          <scope>test</scope>
        </dependency>
        <dependency>
          <groupId>org.powermock</groupId>
          <artifactId>powermock-module-junit4</artifactId>
          <version>1.6.5</version>
          <scope>test</scope>
        </dependency>

    3.写单元测试

    import org.junit.Assert;
    import org.junit.Before;
    import org.junit.Test;
    import org.junit.runner.RunWith;
    import org.mockito.Mockito;
    import org.powermock.api.mockito.PowerMockito;
    import org.powermock.core.classloader.annotations.PowerMockIgnore;
    import org.powermock.core.classloader.annotations.PrepareForTest;
    import org.powermock.modules.junit4.PowerMockRunner;
    
    import static org.mockito.Matchers.anyInt;
    import static org.mockito.Matchers.eq;
    import static org.mockito.MockitoAnnotations.initMocks;
    import static org.mockito.Matchers.anyObject;
    import static org.mockito.Mockito.when;
    
    @RunWith(PowerMockRunner.class)
    @PrepareForTest({AmountUtil.class})
    @PowerMockIgnore("javax.management.*")
    public class StaticClassTest {
    
        @Before
        public void setUp() throws Exception {
            initMocks(this);
        }
    
        @Test
        public void test1() throws Exception {
            this.mockResources();
            String s = AmountUtil.CustomFormatWith2Digits(1);
            Assert.assertTrue(s == "");
        }
    
        private void mockResources() throws Exception {
            PowerMockito.mockStatic(AmountUtil.class);
    
            PowerMockito.when(AmountUtil.CustomFormatWith2Digits(anyInt())).thenReturn("");
        }
    }
  • 相关阅读:
    微信小程序非域名测试环境,手机预览不正常,模拟器和真机调试正常解决办法
    vue 建项目及初步开发遇到的问题
    开发&测试
    架构&项目
    运维
    读书&源码
    ArrayList
    jdk集合知识点整理
    jdk集合关系图
    jvm知识点整理
  • 原文地址:https://www.cnblogs.com/zhshlimi/p/8296918.html
Copyright © 2020-2023  润新知