+1@Override public boolean updateTemplate(SmsTemplatedTo smsTemplatedto){ List<PushPlanMsgDTO> pushPlanMsgDTOS=pushPlanSetMapper if(!CollectionUtils.isEmpty(pushPlanMsgdtos)) {.queryBindValidPushPlan(smsTemplateDTo.getTemplateId()); I throw BizException.error( warnningMessage:"该计划绑定了生效中的营销推送计划,不允许修改!"); UserInfo userInfo =UserContext.getUserInfo(); smsTemplateDTO.setModifierNo(userInfo.getTlrId()); smsTemplateDTO.setoprorInstNo(userInfo.getInstNo()); if(smsTemplateMapper.updateTemplate(smsTemplatedTo)>0){ log.info("修改成功"); return true;} else { return false;} } 根据以上代码生成单元测试案例,需要使用mockito.lenient().when(xx).thenReturn,测试的方法是public void update(){}
时间: 2024-02-25 22:55:14 浏览: 129
以下是针对给出代码的一个可能的单元测试案例:
```
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.Mockito;
import org.mockito.junit.MockitoJUnitRunner;
import org.springframework.util.CollectionUtils;
import java.util.ArrayList;
import java.util.List;
@RunWith(MockitoJUnitRunner.class)
public class SmsTemplateServiceTest {
@InjectMocks
private SmsTemplateService smsTemplateService;
@Mock
private SmsTemplateMapper smsTemplateMapper;
@Mock
private PushPlanSetMapper pushPlanSetMapper;
@Test
public void testUpdateTemplate() {
// given
SmsTemplatedTo smsTemplatedto = new SmsTemplatedTo();
smsTemplatedto.setTemplateId(1);
PushPlanMsgDTO pushPlanMsgDTO = new PushPlanMsgDTO();
pushPlanMsgDTO.setPlanId(1);
List<PushPlanMsgDTO> pushPlanMsgDTOS = new ArrayList<>();
pushPlanMsgDTOS.add(pushPlanMsgDTO);
Mockito.lenient().when(pushPlanSetMapper.queryBindValidPushPlan(1)).thenReturn(pushPlanMsgDTOS);
// when
boolean result = smsTemplateService.updateTemplate(smsTemplatedto);
// then
Assert.assertFalse(result);
}
}
```
这个测试类使用了 Mockito 框架来 mock 掉 `smsTemplateMapper` 和 `pushPlanSetMapper` 对象,并注入到 `smsTemplateService` 对象中进行单元测试。在 `testUpdateTemplate` 方法中,我们构造了一个 `SmsTemplatedTo` 对象,并设置 `templateId` 属性为 1,同时构造了一个 `PushPlanMsgDTO` 对象,并设置 `planId` 属性为 1,然后将其添加到 `pushPlanMsgDTOS` 列表中。接下来,使用 Mockito 框架模拟 `pushPlanSetMapper` 对象的 `queryBindValidPushPlan` 方法,该方法会返回刚才构造的 `pushPlanMsgDTOS` 列表。最后,我们调用 `smsTemplateService` 对象的 `updateTemplate` 方法,并传入刚才构造的 `smsTemplatedto` 对象。由于该方法中会抛出 `BizException`,因此我们期望该方法返回 false。最后,使用 `Assert` 断言来判断测试结果是否符合预期。
阅读全文