util单元测试
来源:互联网 发布:宁国市房地产数据 编辑:程序博客网 时间:2024/06/11 21:16
参考:http://blog.csdn.net/rainbow702/article/details/51783285
import com.fasterxml.jackson.databind.ObjectMapper;
import org.junit.Test;import org.junit.runner.RunWith;
import org.powermock.api.mockito.PowerMockito;
import org.powermock.core.classloader.annotations.PowerMockIgnore;
import org.powermock.core.classloader.annotations.PrepareForTest;
import org.powermock.modules.junit4.PowerMockRunner;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import static org.assertj.core.api.Assertions.assertThat;
import static org.powermock.api.mockito.PowerMockito.when;
/**
* Created by ji_pengyun on 17-7-19.
*/
@RunWith(PowerMockRunner.class)
@PrepareForTest({BusinessDataCompleteSummaryUtil.class, MessageHelper.class})
@PowerMockIgnore("javax.management.*")
public class BusinessDataCompleteSummaryUtilTest {
@Test
public void testBusinessDataCompleteSummaryUtil() {
//new BusinessDataCompleteSummaryUtil 是为了覆盖util类名
BusinessDataCompleteSummaryUtil businessDataCompleteSummaryUtil=new BusinessDataCompleteSummaryUtil();assertThat(businessDataCompleteSummaryUtil).isNotNull();
//以下众多参数设置为了覆盖util的大量if else。很多是通过indicatorsJson来达到覆盖。鉴于json太长,舍弃了。
BusinessDataComplete businessDataComplete = new BusinessDataComplete();businessDataComplete.setSubTaskId(168);
businessDataComplete.setCreateUser("ji");
businessDataComplete.setCreateTime(1500448782994L);
businessDataComplete.setModifiedUser("li");
businessDataComplete.setModifiedTime(1500448782994L);
businessDataComplete.setIndicatorsJson("----此处是真实json,太长...看起来累----");
List<BusinessDataComplete> businessDataCompletes = new ArrayList<>();
BusinessDataComplete businessDataComplete1 = new BusinessDataComplete();
businessDataComplete1.setSubTaskId(169);
businessDataComplete1.setCreateUser("ji");
businessDataComplete1.setCreateTime(1500448782994L);
businessDataComplete1.setModifiedUser("");
businessDataComplete1.setModifiedTime(1500448782994L);
businessDataComplete1.setProvinceId(100);
businessDataComplete1.setStatus(2);
businessDataComplete1.setIndicatorsJson("----此处是真实json,太长...看起来累----");
BusinessDataComplete businessDataComplete2 = new BusinessDataComplete();
businessDataComplete2.setSubTaskId(170);
businessDataComplete2.setCreateUser("ji");
businessDataComplete2.setCreateTime(1500448782994L);
businessDataComplete2.setModifiedUser(" ");
businessDataComplete2.setModifiedTime(1500448782994L);
businessDataComplete2.setProvinceId(200);
businessDataComplete2.setIndicatorsJson("----此处是真实json,太长...看起来累----");
businessDataComplete2.setStatus(2);
BusinessDataComplete businessDataComplete3 = new BusinessDataComplete();
businessDataComplete3.setSubTaskId(180);
businessDataComplete3.setProvinceId(0);
businessDataComplete3.setStatus(1);
businessDataComplete3.setIndicatorsJson("----此处是真实json,太长...看起来累----");
BusinessDataComplete businessDataComplete4 = new BusinessDataComplete();
businessDataComplete4.setSubTaskId(171);
businessDataComplete4.setProvinceId(300);
businessDataComplete4.setStatus(0);
businessDataComplete4.setIndicatorsJson("----此处是真实json,太长...看起来累----");
businessDataCompletes.add(businessDataComplete1);
businessDataCompletes.add(businessDataComplete2);
businessDataCompletes.add(businessDataComplete3);
businessDataCompletes.add(businessDataComplete4);
BusinessDataComplete businessDataCompleteTest = BusinessDataCompleteSummaryUtil.summaryGroupData(businessDataCompletes, businessDataComplete);
assertThat(businessDataCompleteTest.getCreateTime()).isEqualTo(businessDataComplete.getCreateTime());
}
//测试util的catch部分
@Test
public void testBusinessDataCompleteSummaryUtilException() throws Exception {
List<BusinessDataComplete> businessDataCompletes = new ArrayList<>();
BusinessDataComplete businessDataComplete5 = new BusinessDataComplete();
businessDataComplete5.setSubTaskId(171);
businessDataComplete5.setProvinceId(300);
businessDataComplete5.setStatus(2);
businessDataComplete5.setIndicatorsJson("----此处是真实json,太长...看起来累----");
businessDataCompletes.add(businessDataComplete5);
String indicatorsJsonContent = "----此处是真实json,太长...看起来累----";
BusinessDataComplete businessDataComplete = new BusinessDataComplete();
businessDataComplete.setSubTaskId(168);
businessDataComplete.setCreateUser("ji");
businessDataComplete.setCreateTime(1500448782994L);
businessDataComplete.setModifiedUser("li");
businessDataComplete.setModifiedTime(1500448782994L);
businessDataComplete.setIndicatorsJson("----此处是真实json,太长...看起来累----");
ObjectMapper objectMapper = PowerMockito.mock(ObjectMapper.class);
PowerMockito.whenNew(ObjectMapper.class).withNoArguments().thenReturn(objectMapper);
when(objectMapper.readValue(indicatorsJsonContent, HashMap.class)).thenThrow(new IOException("IOException"));
//mock静态类,设定返回一个"msg" 否则此处会报错
PowerMockito.mockStatic(MessageHelper.class);when(MessageHelper.getMessage("MSG999991")).thenReturn("msg");
//try catch 来检测test效果
try {
BusinessDataCompleteSummaryUtil.summaryGroupData(businessDataCompletes, businessDataComplete);
} catch (Exception e) {
assertThat(e.equals("IOEexception"));
}
}
}
阅读全文
0 0
- util单元测试
- util
- Util
- Util
- util
- util
- util
- util
- util
- Util
- 单元测试
- 单元测试
- 单元测试
- 单元测试
- 单元测试
- 单元测试
- 单元测试
- 单元测试
- HDU2097 sky数
- JSP与servert的关系详解
- DOM 中文档节点,文本节点之间的关系
- ThinkPHP中集成阿里大于短信发送SDK
- 设置正确的DNS
- util单元测试
- 全球地区选择,支持中英文切换。国家-省市-城市-地区
- 结构体中访问成员点操作符和箭头操作符的区别
- 菜鸟如何成为一个高效程序员的成长之路
- jni函数参数
- 深度学习中的Batch Normalization
- [vue] todoList,待办项列表实现
- c++ 数字与字符串的相互转换
- 【每日一题】替换字符串中的空格为$$$。要求时间复杂度为O(N)