Deaktivieren Sie @EnableScheduling bei Spring Tests

Wenn ich meine unit-tests, es ruft meine geplanten Aufgaben. Ich möchte verhindern, dass dieses Verhalten, das wird durch die Tatsache verursacht, dass ich @EnableScheduling auf meinem Haupt-app-Konfiguration.

Wie kann ich diese deaktivieren, auf meine unit-tests?

Habe ich in dieser Frage/Antwortdie nahelegt, profile einrichten?

Nicht sicher, wie ich gehen würde? oder ob es ein overkill? Ich dachte an eine separate AppConfiguration für meine unit-tests, aber es fühlt sich an wie im sich wiederholenden code zweimal, wenn ich das tun?

@Configuration
@EnableJpaRepositories(AppConfiguration.DAO_PACKAGE)
@EnableTransactionManagement
@EnableScheduling
@ComponentScan({AppConfiguration.SERVICE_PACKAGE,
                AppConfiguration.DAO_PACKAGE,
                AppConfiguration.CLIENT_PACKAGE,
                AppConfiguration.SCHEDULE_PACKAGE})
public class AppConfiguration {

    static final    String MAIN_PACKAGE             = "com.etc.app-name";
    static final    String DAO_PACKAGE              = "com.etc.app-name.dao";
    private static  final  String ENTITIES_PACKAGE  = "com.etc.app-name.entity";
    static final    String SERVICE_PACKAGE          = "com.etc.app-name.service";
    static final    String CLIENT_PACKAGE           = "com.etc.app-name.client";
    static final    String SCHEDULE_PACKAGE         = "com.etc.app-name.scheduling";


    @Bean
    public LocalContainerEntityManagerFactoryBean entityManagerFactory(){
       //stripped code for question readability
    }

    //more app config code below etc

}

Unit-test-Beispiel.

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes={AppConfiguration.class})
@Transactional
@TransactionConfiguration(defaultRollback = true)
@WebAppConfiguration
public class ExampleDaoTest {

    @Autowired
    ExampleDao exampleDao;

    @Test
    public void testExampleDao() {
        List<Example> items = exampleDao.findAll();
        Assert.assertTrue(items.size()>0);
    }
}

InformationsquelleAutor der Frage Robbo_UK | 2015-03-12

Schreibe einen Kommentar