利用mockito模拟redistemplate执行lua脚本出错?

在利用mockito模拟redistemplate执行lua脚本的时候,使用mockito的参数匹配器一直无法成功,不知道是否有前辈遇到这样的问题,控制台出现的错误如下:
image.png
测试代码如下:
希望redistemplate执行脚本后,返回定义的mockResult列表

@SpringBootTest
@RunWith(MockitoJUnitRunner.class)
public class OrderServiceImplTest {


    @Autowired
    public OrderServiceImpl orderService;

    @MockBean
    public PatientFeignClient patientFeignClient;

    @MockBean
    @Qualifier("redisTemplate")
    private RedisTemplate redisTemplate;

    @MockBean
    private HospitalFeignClient hospitalFeignClient;


    @MockBean
    private RabbitService rabbitService;


    /*
    测试排班id不存在
     */
    @Test
    public void saveOrder() {

        List<Object> mockResult = Arrays.asList(1);
 when(redisTemplate.execute(Mockito.any(DefaultRedisScript.class),Mockito.anyList(),Mockito.eq(100))).thenReturn(mockResult);

      
    }
}
阅读 1.9k
1 个回答
when(redisTemplate.execute(
    argThat(new ArgumentMatcher<DefaultRedisScript<List>>() {
        @Override
        public boolean matches(DefaultRedisScript<List> argument) {
            // 加条件来匹配你的DefaultRedisScript
            return argument != null;
        }
    }),
    argThat(new ArgumentMatcher<List<String>>() {
        @Override
        public boolean matches(List<String> argument) {
            // 在这加条件来匹配你的List
            return argument != null && !argument.isEmpty();
        }
    }),
    eq(100)
)).thenReturn(mockResult);
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题