directory-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Emmanuel Lecharny <elecha...@gmail.com>
Subject Re: [ApacheDS] Move classes of module core-mock to src/test/java of core-api
Date Fri, 04 Jun 2010 10:13:45 GMT
On 6/4/10 10:10 AM, Stefan Seelmann wrote:
> Emmanuel Lecharny wrote:
>    
>> On 6/4/10 1:03 AM, Stefan Seelmann wrote:
>>      
>>> Emmanuel Lecharny wrote:
>>>
>>>        
>>>> On 6/3/10 11:04 PM, Stefan Seelmann wrote:
>>>>
>>>>          
>>>>> Hi dev,
>>>>>
>>>>> the core-mock module includes some mock implementations of ApacheDS
>>>>> core-api classes (CoreSession, DirectoryService, etc.). It is only used
>>>>> as test dependency in ldif-partition.
>>>>>
>>>>> To get rid of the core-mock module I'd like to suggest to move those
>>>>> classes to src/test/java in core-api. To be able to use the test
>>>>> classes
>>>>> outside of the core-api module we just need to deploy the test jar of
>>>>> core-api. The using module then needs to specify a dependency with
>>>>> classifier "tests", see [1] for details.
>>>>>
>>>>>
>>>>>            
>>>> We also had a discussion with Pierre-Arnaud about those unit tests. Once
>>>> upon a time, we have had some core-unti and server-unit modules. They
>>>> have been renamed core-intger and server-integ. So far, so good, but we
>>>> still have another module called apacheds-test-framework.
>>>>
>>>> We do think that the classes we have in core/server-integ - I mean, the
>>>> classes in java/main, not the tests - should be moved to
>>>> apacheds-test-framework.
>>>>
>>>> That being said, we could also move the core-mock into this
>>>> apacheds-test-framework module.
>>>>
>>>> Does it make sense ?
>>>>
>>>>          
>>> I'm afraid that won't be possible because this would cause cyclic
>>> dependencies.
>>>
>>> The integ tests and the test framework start up a real directory service
>>> with real partitions, including an LDIF based config and schema
>>> partition, so they depend on the ldif-partition.
>>>
>>> The mocks are used because we can't start a real directory service in
>>> ldif-partion module for unit tests.
>>>
>>> But we can run the integration tests against the LDIF partition.
>>>
>>>        
>> Ok, so we have the exact same problem than with the LDAP API : we had to
>> extract the api tests and put them in ApacheDS just to be able to launch
>> a real server.
>>
>> What about doing the same thing and move all the Ldif-Partition tests
>> out of the ldif-partition module and put them where they can use the
>> real DS ?
>>
>> I mean, tests are not to be close to the part they are testing?
>>
>> thoughts ?
>>      
> I think we should distinguish unit tests and integration tests.
>
> Unit tests should be close to the part they are testing. And they should
> not test other components around. Thus it is valid to use mocks.
Absolutely
> The
> tests in ldif-partition are unit tests because they just test that the
> ldif-partition code works, that is that files in the file system are
> created or deleted. So I think these tests are at the right place.
>    
So where should we put the mocks ? Core-API as you suggested ? (IMO, if 
that solve the problem, then +1)

Maybe what I'm suggesting is a bit too convoluted anyway.
> Kind Regards,
> Stefan
>
>
>    


-- 
Regards,
Cordialement,
Emmanuel L├ęcharny
www.nextury.com



Mime
View raw message