那些不常见的单元测试

项目中很多单元源代码的单元测试是被排除在外的,此博文长期总结
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());
    }

}

你可能感兴趣的:(【单元测试】)