+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
时间: 2024-02-25 20:52:01 浏览: 101
以下是可能的单元测试案例代码:
```
import org.junit.*;
import org.mockito.*;
public class SmsTemplateServiceTest {
@Mock
private PushPlanSetMapper pushPlanSetMapper;
@Mock
private SmsTemplateMapper smsTemplateMapper;
@InjectMocks
private SmsTemplateService smsTemplateService;
@Before
public void setUp() {
MockitoAnnotations.openMocks(this);
}
@Test
public void testUpdateTemplate_shouldReturnTrue() {
// Arrange
SmsTemplatedTo smsTemplatedto = new SmsTemplatedTo();
smsTemplatedto.setTemplateId(1);
Mockito.lenient().when(pushPlanSetMapper.queryBindValidPushPlan(1)).thenReturn(new ArrayList<PushPlanMsgDTO>());
UserInfo userInfo = new UserInfo();
userInfo.setTlrId(1001);
userInfo.setInstNo(1);
UserContext.setUserInfo(userInfo);
// Act
boolean result = smsTemplateService.updateTemplate(smsTemplatedto);
// Assert
Assert.assertTrue(result);
Mockito.verify(smsTemplateMapper).updateTemplate(smsTemplatedto);
}
@Test
public void testUpdateTemplate_shouldReturnFalse() {
// Arrange
SmsTemplatedTo smsTemplatedto = new SmsTemplatedTo();
smsTemplatedto.setTemplateId(1);
List<PushPlanMsgDTO> pushPlanMsgDTOS = new ArrayList<>();
pushPlanMsgDTOS.add(new PushPlanMsgDTO());
Mockito.lenient().when(pushPlanSetMapper.queryBindValidPushPlan(1)).thenReturn(pushPlanMsgDTOS);
UserInfo userInfo = new UserInfo();
userInfo.setTlrId(1001);
userInfo.setInstNo(1);
UserContext.setUserInfo(userInfo);
// Act
boolean result = smsTemplateService.updateTemplate(smsTemplatedto);
// Assert
Assert.assertFalse(result);
Mockito.verify(smsTemplateMapper, Mockito.never()).updateTemplate(smsTemplatedto);
}
}
```
在这个示例中,我们使用了 Mockito 框架来模拟 PushPlanSetMapper 和 SmsTemplateMapper 对象,并注入 SmsTemplateService 对象。在 setUp() 方法中初始化这些模拟对象。在 testUpdateTemplate_shouldReturnTrue() 方法中测试当没有绑定营销推送计划时,更新模板成功的情况。在 testUpdateTemplate_shouldReturnFalse() 方法中测试当绑定了营销推送计划时,更新模板失败的情况。使用 Mockito.lenient().when(xx).thenReturn() 来模拟 pushPlanSetMapper.queryBindValidPushPlan() 方法的返回值。使用 Mockito.verify(xx).updateTemplate() 来验证 smsTemplateMapper.updateTemplate() 方法是否被正确调用。
阅读全文