zoukankan      html  css  js  c++  java
  • 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("");
        }
    }
  • 相关阅读:
    多传感器融合(三)
    多传感器融合(二)
    多传感器融合(一)
    3D点云完美匹配
    Geo-CNN的三维点云
    3D点云几何拟合
    BAD SLAM:捆绑束调整直接RGB-D SLAM
    三维视觉惯性SLAM的有效Schmidt-EKF
    RGB-D相机视觉SLAM
    Visual SLAM
  • 原文地址:https://www.cnblogs.com/zhshlimi/p/8296918.html
Copyright © 2011-2022 走看看