有什么问题UUID.randomUUID()- 它只是不能被嘲笑
可以嘲笑吗?或者我的来源有错误?
看例子:
1) 被测试的类
package com.grayen;
import java.util.UUID;
public class TestedClass {
public UUID getUuid() {
return UUID.randomUUID();
}
public UUID getUuidFromWrapper() {
return UuidWrapper.randomUUID();
}
}
一种方法使用 UUID 的包装器,我可以模拟该包装器!
2) 真实 UUID 的包装器(所有修饰符都相同)
package com.grayen;
import java.util.UUID;
public final class UuidWrapper {
public static UUID randomUUID() {
return UUID.randomUUID();
}
}
3)测试(最后注释行抛出异常)
package com.grayen;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.powermock.api.mockito.PowerMockito;
import org.powermock.core.classloader.annotations.PrepareForTest;
import org.powermock.modules.junit4.PowerMockRunner;
import java.util.UUID;
import static org.junit.Assert.assertEquals;
@PrepareForTest({UUID.class, UuidWrapper.class})
@RunWith(PowerMockRunner.class)
public class TestedClassTest {
@Test
public void testMethod() {
UUID uuid = UUID.randomUUID();
PowerMockito.mockStatic(UUID.class);
PowerMockito.mockStatic(UuidWrapper.class);
PowerMockito.when(UUID.randomUUID()).thenReturn(uuid);
PowerMockito.when(UuidWrapper.randomUUID()).thenReturn(uuid);
TestedClass testedClass = new TestedClass();
assertEquals(uuid, testedClass.getUuidFromWrapper());
//assertEquals(uuid, testedClass.getUuid());
}
}
扬帆大鱼
森栏
相关分类