提交 76aa8b21 编写于 作者: S Sam Brannen

Spring TestContext Framework autowiring tests now include an explicit test for...

Spring TestContext Framework autowiring tests now include an explicit test for the @Autowired-@Qualifier combination.
上级 d13567bc
...@@ -20,4 +20,8 @@ ...@@ -20,4 +20,8 @@
<constructor-arg value="Bar" /> <constructor-arg value="Bar" />
</bean> </bean>
<bean id="quux" class="java.lang.String">
<constructor-arg value="Quux" />
</bean>
</beans> </beans>
...@@ -25,13 +25,13 @@ import javax.annotation.Resource; ...@@ -25,13 +25,13 @@ import javax.annotation.Resource;
import org.junit.Test; import org.junit.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
import org.springframework.beans.BeansException; import org.springframework.beans.BeansException;
import org.springframework.beans.Employee; import org.springframework.beans.Employee;
import org.springframework.beans.Pet; import org.springframework.beans.Pet;
import org.springframework.beans.factory.BeanNameAware; import org.springframework.beans.factory.BeanNameAware;
import org.springframework.beans.factory.InitializingBean; import org.springframework.beans.factory.InitializingBean;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware; import org.springframework.context.ApplicationContextAware;
import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.ContextConfiguration;
...@@ -48,6 +48,7 @@ import org.springframework.test.context.support.GenericXmlContextLoader; ...@@ -48,6 +48,7 @@ import org.springframework.test.context.support.GenericXmlContextLoader;
* <ul> * <ul>
* <li>{@link ContextConfiguration @ContextConfiguration}</li> * <li>{@link ContextConfiguration @ContextConfiguration}</li>
* <li>{@link Autowired @Autowired}</li> * <li>{@link Autowired @Autowired}</li>
* <li>{@link Qualifier @Qualifier}</li>
* <li>{@link Resource @Resource}</li> * <li>{@link Resource @Resource}</li>
* <li>{@link ApplicationContextAware}</li> * <li>{@link ApplicationContextAware}</li>
* <li>{@link BeanNameAware}</li> * <li>{@link BeanNameAware}</li>
...@@ -60,9 +61,10 @@ import org.springframework.test.context.support.GenericXmlContextLoader; ...@@ -60,9 +61,10 @@ import org.springframework.test.context.support.GenericXmlContextLoader;
* to the default value of {@link GenericXmlContextLoader}, this test class's * to the default value of {@link GenericXmlContextLoader}, this test class's
* dependencies will be injected via {@link Autowired @Autowired} and * dependencies will be injected via {@link Autowired @Autowired} and
* {@link Resource @Resource} from beans defined in the * {@link Resource @Resource} from beans defined in the
* {@link ApplicationContext} loaded from the default classpath resource: &quot;<code>/org/springframework/test/context/junit/SpringJUnit4ClassRunnerAppCtxTests-context.xml</code>&quot;. * {@link ApplicationContext} loaded from the default classpath resource:
* <code>&quot;/org/springframework/test/context/junit/SpringJUnit4ClassRunnerAppCtxTests-context.xml&quot;</code>.
* </p> * </p>
* *
* @author Sam Brannen * @author Sam Brannen
* @since 2.5 * @since 2.5
* @see AbsolutePathSpringJUnit4ClassRunnerAppCtxTests * @see AbsolutePathSpringJUnit4ClassRunnerAppCtxTests
...@@ -77,6 +79,7 @@ public class SpringJUnit4ClassRunnerAppCtxTests implements ApplicationContextAwa ...@@ -77,6 +79,7 @@ public class SpringJUnit4ClassRunnerAppCtxTests implements ApplicationContextAwa
/** /**
* Default resource path for the application context configuration for * Default resource path for the application context configuration for
* {@link SpringJUnit4ClassRunnerAppCtxTests}: * {@link SpringJUnit4ClassRunnerAppCtxTests}:
*
* <code>&quot;/org/springframework/test/context/junit4/SpringJUnit4ClassRunnerAppCtxTests-context.xml&quot;</code> * <code>&quot;/org/springframework/test/context/junit4/SpringJUnit4ClassRunnerAppCtxTests-context.xml&quot;</code>
*/ */
public static final String DEFAULT_CONTEXT_RESOURCE_PATH = "/org/springframework/test/context/junit4/SpringJUnit4ClassRunnerAppCtxTests-context.xml"; public static final String DEFAULT_CONTEXT_RESOURCE_PATH = "/org/springframework/test/context/junit4/SpringJUnit4ClassRunnerAppCtxTests-context.xml";
...@@ -100,6 +103,10 @@ public class SpringJUnit4ClassRunnerAppCtxTests implements ApplicationContextAwa ...@@ -100,6 +103,10 @@ public class SpringJUnit4ClassRunnerAppCtxTests implements ApplicationContextAwa
protected String bar; protected String bar;
@Autowired
@Qualifier("quux")
protected String quux;
// ------------------------------------------------------------------------| // ------------------------------------------------------------------------|
...@@ -130,24 +137,25 @@ public class SpringJUnit4ClassRunnerAppCtxTests implements ApplicationContextAwa ...@@ -130,24 +137,25 @@ public class SpringJUnit4ClassRunnerAppCtxTests implements ApplicationContextAwa
@Test @Test
public final void verifyApplicationContextSet() { public final void verifyApplicationContextSet() {
assertNotNull("The application context should have been set due to ApplicationContextAware semantics.", assertNotNull("The application context should have been set due to ApplicationContextAware semantics.",
this.applicationContext); this.applicationContext);
} }
@Test @Test
public final void verifyBeanInitialized() { public final void verifyBeanInitialized() {
assertTrue("This test bean should have been initialized due to InitializingBean semantics.", assertTrue("This test bean should have been initialized due to InitializingBean semantics.",
this.beanInitialized); this.beanInitialized);
} }
@Test @Test
public final void verifyBeanNameSet() { public final void verifyBeanNameSet() {
assertEquals("The bean name of this test instance should have been set due to BeanNameAware semantics.", assertEquals("The bean name of this test instance should have been set due to BeanNameAware semantics.",
getClass().getName(), this.beanName); getClass().getName(), this.beanName);
} }
@Test @Test
public final void verifyAnnotationAutowiredFields() { public final void verifyAnnotationAutowiredFields() {
assertNull("The nonrequiredLong field should NOT have been autowired.", this.nonrequiredLong); assertNull("The nonrequiredLong field should NOT have been autowired.", this.nonrequiredLong);
assertEquals("The quux field should have been autowired via @Autowired and @Qualifier.", "Quux", this.quux);
assertNotNull("The pet field should have been autowired.", this.pet); assertNotNull("The pet field should have been autowired.", this.pet);
assertEquals("Fido", this.pet.getName()); assertEquals("Fido", this.pet.getName());
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册