Project

General

Profile

bug #7287

Updated by Andreas Kohlbecker about 6 years ago

 
 Here we make the distinction between Unit and integration test by the fact that integration tests are sub classing    `CdmTransactionalIntegrationTest`. 

 A couple of unit test are making use of term, so the terms need to be initialized. This is done in theses tests by ca method like: 

 ~~~java 
     @BeforeClass 
     public static void setUpBeforeClass() throws Exception { 
         DefaultTermInitializer initializer = new DefaultTermInitializer(); 
         initializer.initialize(); 
     } 
 ~~~ 

 **This approach is highly problematic:** 

 If an integration test has run before the `TestingTermInitializer` has already initialized the terms. Calling the `initialize()` method of the DefaultTermInitializer will reset and override all terms. This breaks subsequent Integration tests since the `TestingTermInitializer` is only run once per suite. 

 An interim solution which is not 100% reliable is to check in the `setUpBeforeClass()`method if the terms already have been loaded. This method should be in a base class for all tests that use the DefaultTermInitializer. 

 As a long term task we should separate Unit and integration tests completely, see #7288 


 **Additional tasks:** 

 * revert DerivedUnitFacadeCacheStrategyInjectionTest and to a unit tests, test, see commented @BeforeClass

Back