私が実装したメソッドのテストケースを記述しようとしていますが、これはサードパーティのキャッシュプロバイダを使用します。 私が直面している問題は、キャッシュが非同期であり、キャッシュに置かれた要素がキャッシュ内に即座に存在しないため、テストすることが非常に難しいことです。異なるボイドメソッドを実行するためのモックオブジェクト
私の解決策は、PowerMockitoを使用してキャッシュをモックすることでした。 常に同じオブジェクトを返すようにすることができますが、オブジェクトをputの上にHashMap
に入れ、取得操作で同じマップから取得することをお勧めします。 get操作は、何か非常にシンプルでなければなりません:
final Map<String, Object> cacheMap = new HashMap<>();
Answer<Object> getFunction = invocation ->
cacheMap.get(invocation.getArgument(0));
when(mockCache.get(any())).thenAnswer(getFunction);
しかし、私はあなたが以外に、ボイドの機能を模擬することができないかのように、少なくともはそうvoidメソッドmockCache.put(any(), any())
について同様の呼び出しを模擬する方法がわかりません実際の方法を呼び出すか、何もしない。