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(""); } }

浙公网安备 33010602011771号