@Override public boolean addTemplate(SmsTemplateDTO smsTemplatedTo){ String prestr = null; if (Stringutils.isNotEmpty(smsTemplateDTO.getPushPlanTpCd()) && PushPlanConsts.DUE_REMIND_CODE.equals(smsTemplatedTo.getPushPlanTpcd())){ prestr ="GQ";} else { prestr ="DH"; String tempId =smsTemplateMapper.generateTemplateid(prestr); UserInfo userInfo =UserContext.getUserInfo(); smsTemplateDTO.setCreatorNo(userInfo.getTlrid()); smsTemplateDTO.setModifierNo(userInfo.getTrId()); smsTemplateDTO.setOprorInstNo(userInfo.getInstno()); smsTemplateDTO.setTemplateId(tempId); if(smsTemplateMapper.addSmsTemplate(smsTemplateDTO)> ){ log.info("新增成功"); return true;} else { return false; }根据以上代码生成单元测试案例,需要使用mockito.lenient().when(xx).thenReturn(),
时间: 2024-03-01 14:50:13 浏览: 83
android_sd_img.zip_sd.img
假设需要使用 Mockito 进行单元测试,可以按如下方式编写代码:
```java
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.junit.MockitoJUnitRunner;
@RunWith(MockitoJUnitRunner.class)
public class SmsTemplateServiceTest {
@Mock
private SmsTemplateMapper smsTemplateMapper;
@InjectMocks
private SmsTemplateService smsTemplateService;
@Test
public void testAddTemplate() {
// 设置输入参数
SmsTemplateDTO smsTemplateDTO = new SmsTemplateDTO();
smsTemplateDTO.setPushPlanTpCd("test");
// 设置模拟行为
Mockito.lenient().when(smsTemplateMapper.generateTemplateid(Mockito.anyString())).thenReturn("test");
Mockito.lenient().when(smsTemplateMapper.addSmsTemplate(Mockito.any(SmsTemplateDTO.class))).thenReturn(1);
// 调用被测方法
boolean result = smsTemplateService.addTemplate(smsTemplateDTO);
// 断言结果
Assert.assertTrue(result);
}
}
```
这里使用了 `@Mock` 注解来模拟 `SmsTemplateMapper` 的行为,使用 `@InjectMocks` 注解来注入被测对象 `SmsTemplateService`。在测试方法中,首先设置输入参数 `SmsTemplateDTO`,然后使用 `Mockito.lenient().when(xx).thenReturn()` 方法来设置模拟行为,最后调用被测方法并断言结果。
阅读全文