Java 在junits中初始化只读对象的最佳方法
我有一个只读类,将由Jackson初始化。我将给出API使用的jar,不希望用户设置对象的属性Java 在junits中初始化只读对象的最佳方法,java,junit,mockito,powermock,powermockito,Java,Junit,Mockito,Powermock,Powermockito,我有一个只读类,将由Jackson初始化。我将给出API使用的jar,不希望用户设置对象的属性 class ReadOnlyClass { private String value; public String getValue() { return this.value; } } 现在,必须将此对象传递给另一个服务以执行其他工作 我想为此服务编写Junits。如何初始化此对象 我听说使用反射是一种不好的做法。powermock/mockito或任何其他
class ReadOnlyClass {
private String value;
public String getValue() {
return this.value;
}
}
现在,必须将此对象传递给另一个服务以执行其他工作
我想为此服务编写Junits。如何初始化此对象
我听说使用反射是一种不好的做法。powermock/mockito或任何其他库中是否有我可以使用的实用程序
class SomeService{
public void doSomeTask(ReadOnlyClass roc){
// Some logic
}
}
class SomeServiceTest{
@Mock
private ReadOnlyClass readOnlyClass;
@autowired
private SomeService someService;
@Test
public void testDoSomeTask(){
when(readOnlyClass.getValue())
.thenReturn("some value");
someService.doSomeTask(readOnlyClass);
}
}
powermock/mockito或任何其他库中是否有我可以使用的实用程序
这样就应该行了,
class SomeService{
public void doSomeTask(ReadOnlyClass roc){
// Some logic
}
}
class SomeServiceTest{
@Mock
private ReadOnlyClass readOnlyClass;
@autowired
private SomeService someService;
@Test
public void testDoSomeTask(){
when(readOnlyClass.getValue())
.thenReturn("some value");
someService.doSomeTask(readOnlyClass);
}
}
将
值设置为final,编写一个构造函数来设置值。还可以选中Lombok。创建构造函数可以允许api用户创建自己的对象并输入自己的值。我不想允许这样。在应用程序中如何初始化对象?通过Jackson objectmapper.readvalueMakevalue
final,编写一个构造函数来设置值
。还可以选中Lombok。创建构造函数可以允许api用户创建自己的对象并输入自己的值。我不想允许这样。在应用程序中如何初始化对象?通过Jackson objectmapper.readvalue