Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Junit 5 test, getting java.lang.IllegalStateException: Test classes cannot include @Bean methods

@ContextConfiguration(classes = ConfigureCustomConfigurationModelProviderTest.class)
    public class ConfigureCustomConfigurationModelProviderTest extends AbstractContextTest {
        @Bean(name = "smth")
        public static ConfigurationModelProvider get() {
            return AnnotationConfigurationModelProvider.getInstance();
        }
        /*...*/
    }

I'm getting this error since migrating from junit4 to junit5. Why?

like image 971
un1kalny Avatar asked Nov 26 '17 16:11

un1kalny


1 Answers

You should move every beans to @Configuration class for example TestConfig:

@Configuration
public class TestConfig {

    @Bean(name = "smth")
    public static ConfigurationModelProvider get() {
        return AnnotationConfigurationModelProvider.getInstance();
    }
}

and import it via @Import:

@Import({TestConfig.class})
@ContextConfiguration(classes = ConfigureCustomConfigurationModelProviderTest.class)
public class ConfigureCustomConfigurationModelProviderTest extends AbstractContextTest {
}
like image 113
amir azizkhani Avatar answered Sep 25 '22 12:09

amir azizkhani