Cool. I did remember seeing a number of e-mails flying around about too many testing frameworks, so it would be good to get that unified. Its been a while since I used easy mock 1 something, but as I recall, it had to do myobject1.a() method calling mock2.a(), mock3.b() and mock4.c(), all of which needs to return a specific value. If I deleted the reference to object2 in the implementation, maintaining the behavior, then I had to fix all my unit tests. Same thing if I changed the number of times (or the order) a method is called.
Shane On 5/30/07, Brett Porter <[EMAIL PROTECTED]> wrote:
I've used easy mock 2.0 before and it seems the best available mock framework. I'm not sure how you had problems with implementation changes: the mock objects are meant to be the fake implementation of an interface, so I'm not sure which implementation you are changing :) However, I was referring to the plugin testing harness which mustn't be used in the assembly plugin any more. IT has some problems, but it provides a set of stubs that can be used (other plugins still use it if you want to take a look). Like I said, this stuff needs work and unificiation, which is something I hope to take on in the next month. - Brett On 31/05/2007, at 3:34 PM, Shane Isbell wrote: > I did look through the maven-assembly-plugin module. They are using > easymock > for their unit tests. EasyMock version 2.2 requires JUnit4, so we > can't use > it. EasyMock version 2.0 is the highest we can use with Maven and > JUnit 3. > If we go this route, we would also need the class extension, which > allows > you to create mock objects from classes, as opposed to interfaces. > > http://www.easymock.org/EasyMock2_0_Documentation.html > > The testing harness that maven-assembly-plugin module uses looks to > be for > functional tests, not unit tests. My experience in the past with > EasyMock is > that when I changed my implementation (but still had the same public > behavior on the interface) all my tests broke. Of course, I may not > have > been using easy mock correctly. Anybody on the list have experience > with > EasyMock (or competitors)? > > Shane > > On 5/30/07, Brett Porter <[EMAIL PROTECTED]> wrote: >> >> There is a plugin testing harness for this specific reason. As I >> said, it's an area that needs active work in Maven. >> >> - Brett >> >> On 31/05/2007, at 2:39 PM, Shane Isbell wrote: >> >> > The problem that I encountered on writing unit tests was that a lot >> > of the >> > classes have uninitialized fields that plexus injects with values >> > during run >> > time. I didn't want to start a plexus container (because then I am >> > testing >> > more than one method); so I had to rely on stubs to do testing. One >> > idea >> > that crossed my mind was either finding or writing a small >> utility for >> > injecting fields for unit tests. I think that this would alleviate >> > some of >> > the problems with having to generate a lot of stubs. I did try >> > using mock >> > objects but constructing the tests required knowing a fair amount >> > of the >> > implementation details, which in itself can become a serious >> > maintenance >> > issue. >> > >> > Shane >> > >> > On 5/30/07, Brett Porter <[EMAIL PROTECTED]> wrote: >> >> >> >> >> >> On 30/05/2007, at 5:05 PM, Evan Worley wrote: >> >> >> >> > Does anyone know of any documentation as to best practices >> for unit >> >> > testing maven plugins? It seems to be an inherently >> difficult task >> >> > and I imagine it would require complex sets of mock objects. >> Any >> >> > advice or examples in this area would be appreciated. >> >> >> >> We're working on improving the situation there - there are some >> >> testing tools already but no write ups on how to use them. I'm >> told >> >> the assembly plugin is the best example to work from. >> >> >> >> - Brett >> >> >>
