项目中很多单元源代码的单元测试是被排除在外的,此博文长期总结
1、抽象类的单元测试
public abstract class ProductTask<E> implements Callable<E> {
private List<Object> taskList;
public ProductTask(List<Object> taskList){
this.taskList=taskList;
}
public List<Object> getTaskList(){
return taskList;
}
public void setTaskList(List<Object> taskList) {
this.taskList = taskList;
}
}
对应的测试案例,我写了俩,第一个便于阅读,第二个简化版:
第一个:
public class ProductTaskTest {
ProductTask productTask;
static List<Object> taskList;
@Before
public void setUp() throws Exception {
taskList taskList= new ArrayList<>();
productTask = new Inner_ProductTask();
}
static class Inner_ProductTask extends ProductTask {
public Inner_ProductTask() {
super(taskList);
}
@Override
public Object call() throws Exception {
return new Inner_ProductTask();
}
}
@After
public void tearDown() throws Exception {
}
@Test
public void testSetGettaskList(){
taskList.add(1);
taskList.add(2);
taskList.add(3);
productTask.settaskList(taskList);
List list = productTask.gettaskList();
Assert.assertEquals(list,taskList);
}
}
第二个:
public class ProductTaskTest {
@Test
public void testProductTaskTest() {
ProductTask<String> productTask = new ProductTask<String>(new ArrayList<>()) {
@Override
public String call() throws Exception {
return null;
}
};
productTask.setTaskList(new ArrayList<>());
Assert.assertNotNull(productTask.getTaskList());
}
}