Frage

Ich versuche zu lernen, wie application zu verwenden. Mein Ziel ist es, einen Mock-Daten-Repository für einen echten zu tauschen, wenn meine Unit-Tests verwenden. Ich will nicht, dies ausdrücklich tun, ich will diese Injektion mit Abhängigkeit tun.

So wie ein einfacher Test, bevor ich die Dinge komplizieren, ich bin einfach eine Bohne aus meiner applicationContext.xml zu bekommen versuchen. Von dem, was ich gelesen habe, sollte diese Arbeit:

@ContextConfiguration(locations = "/applicationContext.xml")
public class ResultsListTests {

     @Resource
     CompanyResult resultBean;

     @Test
     public void shouldAddResults() {
         assertEquals(resultBean.getCompanyName(), "Microsoft");

Aber mein resultBean ist immer null. Hier ist mein applicationContext.xml, die unter WebContent / WEB-INF befindet:

<?xml version="1.0" encoding="UTF-8"?>
<beans>
    <bean id="resultBean" name="resultBean" class="com.trgr.cobalt.company.domain.CompanyResult">
        <property name="companyName">
            <value>Microsoft</value>
        </property>
     </bean>
</beans>

Warum ist mein resultBean immer null? Was habe ich falsch gemacht?

War es hilfreich?

Lösung

Sie vermissen eine @RunWith(SpringJUnit4ClassRunner.class) Anmerkung:

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "/applicationContext.xml")
public class ResultsListTests {

     @Resource
     CompanyResult resultBean;

     @Test
     public void shouldAddResults() {
         assertEquals(resultBean.getCompanyName(), "Microsoft");
     }
}

BTW , in der Probe, ist WebContent/WEB-INF nicht der richtige Ort für applicationContext.xml.

Wenn Sie @ContextConfiguration(locations = "/applicationContext.xml") angeben, dann wird Frühling an der Wurzel des Classpath für applicationContext.xml suchen, nicht in WebContent/WEB-INF (jUnit ist 100% keine Kenntnis von der Tatsache, dass es sich um eine Web-Anwendung).

Weitere Informationen: finden Sie unter Federreferenzdokumentation .

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top