On Jul 9, 2012, at 9:38 AM, Thomas Mortagne wrote:

> On Mon, Jul 9, 2012 at 9:32 AM, Vincent Massol <[email protected]> wrote:
>> Hi devs,
>> 
>> Over the weekend I've brought one change to xwiki-commons-test.
>> 
>> Now by default when you write a unit test that extends 
>> AbstractMockingComponentTestCase there will be no component registered 
>> against the component manager except those mocked automatically by the 
>> @MockingRequirement annotation.
>> 
>> This has 2 advantages:
>> * This is the spirit of AbstractMockingComponentTestCase since they're 
>> supposed to mock all dependencies and define their behaviors
>> * It makes the tests up to 10 times faster
>> 
>> If you really need to register some components, use the {@link 
>> ComponentList} annotation and if you really really need to register all 
>> components (it takes time) then use {@link AllComponents}.
> 
> Do  we really need to support loading all components in
> AbstractMockingComponentTestCase since there is
> AbstractComponentTestCase for that ?

I have migrated all tests using AbstractMockingComponentTestCase and if you 
check the commits you'll see I've used @AllComponents in several places. I 
started adding the component implementations one by one but when I reached 10 
or so I stopped doing it, removed the list and instead used @AllComponents.

What this means is that the unit test is not correctly written and it needs to 
be modified.

So yes @AllComponent should not be used in general and once we have fixed 
existing tests we can remove it. We could revisit existing tests using 
@AllComponents and instead use @ComponentList even if there are 20 entries in 
it and then remove @AllComponent. I didn't have the courage to do this 
yesterday since I already spent a substantial time on this.

Also note that AbstractMockingComponentTestCase and AbstractComponentTestCase 
are for different needs:
* AbstractMockingComponentTestCase is for writing unit tests
* AbstractComponentTestCase is for writing integration tests

Thanks
-Vincent

_______________________________________________
devs mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/devs

Reply via email to