less than 1 minute read

how-to-stop-quartz-scheduling-during-springboot-test

To stop Quartz from starting during a @SpringBootTest in Spring Boot, you can use the @MockBean annotation to replace the SchedulerFactoryBean with a mock object. This will prevent the actual scheduler from being created and started during the test.

Here’s an example of how you can use this annotation to stop Quartz from starting during a test:

import org.junit.jupiter.api.Test;
import org.quartz.Scheduler;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.mock.mockito.MockBean;

@SpringBootTest
public class MyTest {

    @Autowired
    private MyService myService;
    
    @MockBean
    private Scheduler scheduler;
    
    @Test
    public void testWithoutQuartz() {
        // your test code here
    }
}

In this example, we use the @MockBean annotation to replace the SchedulerFactoryBean with a mock object. This will prevent the actual scheduler from being created and started during the test.

Note that if you have other configurations that depend on Quartz, disabling Quartz may affect the behavior of your tests. Be sure to test your application thoroughly after disabling Quartz in your tests.

–HTH–

Updated: