SpringJUnit4ClassRunner initializes beans for each test?

The following test shows that this bean test is initialized twice by Spring. I hope someone will tell me why this is so, since it should be only once. Here's the test:

import org.apache.log4j.Logger;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;


@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {} )
public class TestAfterPropsSet implements InitializingBean {

private static final Logger logger = Logger.getLogger(TestAfterPropsSet.class);

@Test
public void test1() {
    logger.debug("Test1");
}

@Test
public void test2() {
    logger.debug("Test2");      
}

public void afterPropertiesSet() throws Exception {
    logger.debug("Bean Initialized");       
}
} // end class

Here is the bean file:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="
        http://www.springframework.org/schema/beans
            http://www.springframework.org/schema/beans/spring-beans.xsd">
</beans>

and here is the conclusion:

2009-10-13 21:20:04,393 [TestAfterPropsSet.java 26] DEBUG - Bean Initialized
2009-10-13 21:20:04,393 [TestAfterPropsSet.java 17] DEBUG - Test1
2009-10-13 21:20:04,393 [TestAfterPropsSet.java 26] DEBUG - Bean Initialized
2009-10-13 21:20:04,393 [TestAfterPropsSet.java 22] DEBUG - Test2
+3
source share
1 answer

This is not a Spring convention. You must follow JUnit conventions, that is, initialization or decomposition within the package must be done in @BeforeClass and @AfterClass, respectively, or you can use @Autowire and let Spring handle the scope of the object.

. JUnit3, .

JavaDoc:

Test , JUnit , . , JUnit . , , . , , .

, , bean, . Spring beans scope = "singleton" , bean, . .

+8

Source: https://habr.com/ru/post/1720038/


All Articles