私は今日までMockitoに頼っていましたが、いくつかの静的メソッドを持つ最終クラスがあるので、JMockitに切り替えました。以前はそれについて何も知らなかったので、質問は次のとおりです。Mockito から JMockit に同様のロジックを適用するにはどうすればよいですか?
public final class ServiceData extends BaseData {
private List<Data> data;
public ServiceData(List<Data> data) {
this.data = data;
// something else
}
public static Container getContainer() {
return super.getContainer();
}
public Data getDataAt(Index index) {
return super.getContainer().get(index);
}
}
Mockito で記述されたテストは次のようになります。
@Test
public void test() {
ServiceData mockServiceData = mock(ServiceData.class);
Data mockData = mock(Data.class);
// only stubbing some of the methods
Container mockContainer = spy(Container.class);
doReturn(something).when(mockContainer.someMethod());
when(mockServiceData.getContainer()).thenReturn(mockContainer);
when(mockServiceData.getDataAt(any(Index.class)).thenReturn(mockData);
// some assertions
}
Mockito は最終クラスや静的メソッド (getContainer) をモックできないため、これは機能しません。では、JMockit で同じロジックをどのように記述できますか? ありがとう。