EasyMock和Spring RetryTemplate

EasyMock和Spring RetryTemplate,spring,junit,easymock,Spring,Junit,Easymock,我有一个使用RetryTemplate的类 class UnderTest{ private RetryTemplate retry; public List<String> something(String param){ retry.execute(new RetryCallback<List<String>>(){ @Override public List<Str

我有一个使用RetryTemplate的类

class UnderTest{
    private RetryTemplate retry;

    public List<String> something(String param){
        retry.execute(new RetryCallback<List<String>>(){

            @Override
            public List<String> doWithRetry(RetryContext context) throws Exception {
                return doSomething(param);
            }

        });
    }
} 
被测类{
私有RetryTemplate重试;
公共列表(字符串参数){
retry.execute(new RetryCallback()){
@凌驾
公共列表doWithRetry(RetryContext上下文)引发异常{
返回剂量测定(参数);
}
});
}
} 
现在我想要使用EasyMock的mock-RetryTemplate,实际上流是这样的(显然我不想测试RetryTemplate):

被测类{
私有RetryTemplate重试;
公共列表(字符串参数){
返回剂量测定(参数);
}
} 
如何使用EasyMock做到这一点?

我认为在“透明”的情况下,只需向类中注入如下内容即可:

RetryTemplate retryTemplate = new RetryTemplate();
retryTemplate.setRetryPolicy(new NeverRetryPolicy());
underTest.setRetryTemplate(retryTemplate); 

underTest.something("foo");

没有任何嘲弄。

谢谢。是的,这很好,但有时候解决方案并不是那么简单,你们想嘲笑的不止这些。您的意思可能是:
retry.setRetryPolicy(新的SimpleRetryPolicy)(1,集合。
NeverRetryPolicy
更好。我修正了我的答案。我刚刚尝试修正了你的具体问题。当然,在大多数情况下,我们应该模拟很多,但你的用例不会处理这些模拟。当然,你可以存根
RetryTemplate。执行
,然后用mock从那里调用
RetryCallback
RetryContext
RetryTemplate retryTemplate = new RetryTemplate();
retryTemplate.setRetryPolicy(new NeverRetryPolicy());
underTest.setRetryTemplate(retryTemplate); 

underTest.something("foo");