目前看到网络和书本上的JUnit教程,全都是在测试不会改变对象状态的方法。
比如最常见的例子,一个计算器类里面的加减法,它是不会改变计算器对象的状态的。如果是一个会改变对象状态的方法,比如集合类,我希望测试方法addAll,它接受一个对象数组,返回增加以后的集合大小。那么就有问题了,测试它的方法大概是这个样子的。public void testAddAll(){
    assertEqual(expectResult, set.addAll(....), 0);
}注意这里有个问题:
这个测试方法里不能写超过一句独立的判定语句,因为前一次操作改了set对象的状态;若要实现在这类会改变对象状态的方法里的多次测试,必须有一个reset方法,每个assert后面都要reset一次才行。有没有好点的办法?