在单元测试的时候,设想:类A使用类B的方法,对A作UT,要想保证UT的正确性,最起码有两个要求:1。B类存在,2。B类实现正确。
而在实际编程中,可能作UT的时候B类并不存在,只有一个接口,比如不同team之间的接口。并且,B类可能实现中存在一些问题。这样如果想对A类进行UT,就会存在问题。
解决方法一是,对类B写一个mock class,这样就保证了B类的存在,并且确实B类确实是正确的。但是这样的就要求写很多的mock class.
这样easymock就应运而生了,它就是用来ut中需要的mock class的,我称之为ut parter.正确的运用它,可以极大的方便我们的UT,减少我们的工作量,减少错误。
不过,在使用它的过程中也发现了一些问题。对于不熟悉EM的人来说,它的写测试用例的方式有些奇怪,一开始让人很不适应。它采用类似于record and replay的方式,模拟所需要的class behavior.
还有就是,如果修改了代码,UT代码如果没有修改,那么test cases就会出现erros,而不是failure.所以,如果修改了代码,一定要保证failed,和 error的cases都要被修改,最麻烦的是,一旦出现错误,EM所报的错误信息,往往让人措不着头脑,不知到底何处出了错误。