我有一个只读类,它将由Jackson初始化。我将给出要由API使用的jar,并且不希望用户为对象设置属性。

class ReadOnlyClass {
    private String value;
    public String getValue() {
        return this.value;
    }
}


现在,必须将该对象传递给另一个服务以执行其他一些工作。

我想为此服务编写Junits。我如何初始化这个对象。

我听说使用反射是一种不好的做法。在powermock / mockito或我可以使用的任何其他库中是否有任何实用程序。

最佳答案

在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);
   }
}

08-07 05:48