Problem
在撰寫retry行為的測試時,想必會遇到針對不同存取次數要回應不同的結果。本篇文章主要分享我所使用的方式。
(根據不同應用會有不同寫法,有新增我就會更新)
How to?
依存取順序回應不同的值
import java.util.Arrays; import java.util.LinkedList; import java.util.Queue; import org.mockito.invocation.InvocationOnMock; import org.mockito.stubbing.Answer; public class MultiValueAnswer<T> implements Answer<T> { private Queue<T> answerValues = new LinkedList<>(); @SafeVarargs public MultiValueAnswer(T... values) { answerValues.addAll(Arrays.asList(values)); } public MultiValueAnswer(){} @Override public T answer(InvocationOnMock invocation) throws Throwable { return answerValues.remove(); } public void addValue(T value){ answerValues.add(value); } }
留言
張貼留言