我想模拟一个具有uuid值的对象,但我不想安装powermock。
UUID.randomUUID
的类。public Clazz MyClazz{
public void doSomething(){
UUID uuid = UUID.randomUUID();
}
}
public class MyClazz{
private final idGeneartor;
public MyClazz(IdGeneartor idGenerator){
this.idGenerator = idGenerator;
}
public void doSomething(){
UUID uuid =idGenerator.generateId();
}
根据您的需求,您可以有多个UUID生成的实现。
public JDKIdGeneartor implements IdGenerator(){
public UUID generateId(){
return UUID.randomUUID();
}
}
还有一种硬编码的实现方式,将始终返回相同的UUID。
public HardCodedIdGenerator implements IdGenerator(){
public UUID generateId(){
return UUID.nameUUIDFromBytes("hardcoded".getBytes());
}
}
val mockUtilities = mock(classOf[utilities]) when (mockUtilities.generateId).thenReturn(1)
),我想这应该可以工作。如果我的方法在一个“object”中,我该怎么做呢?您能否请看一下https://stackoverflow.com/questions/55016630/can-i-and-how-mock-methods-of-an-global-onbject - Manu Chadha