2016-12-16 4 views
0

I Frühling lerne und ich erstellt die folgenden Schnittstellen und Klassen alle unter dem gleichen Paketjunit.framework.AssertionFailedError während Frühling Prüfung

public interface CompactDisc { 
    public void play(); 
} 

-

@Component 
public class StgPeppers implements CompactDisc{ 
    private String title = "Stg. Pepper's Lonely Hearts Club Band"; 
    private String artist = "The Beatles"; 
    @Override 
    public void play(){ 
     System.out.println("Playing "+title+" by "+artist); 
    } 
} 

-

@Configuration 
@ComponentScan 
public class CDPlayerConfig { 
} 

Diese werden mit

getestet eine Hauptklasse geschaffen, die gerade das tut

public class Main { 

    public static void main(String[] args){ 
     new CDPlayerTest().cdShouldNotBeNull(); 
    } 

} 

In der

import junit.framework.Assert; 
import org.junit.Test; 
import org.junit.runner.RunWith; 
import org.springframework.beans.factory.annotation.Autowired; 
import org.springframework.test.context.ContextConfiguration; 
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; 

@RunWith(SpringJUnit4ClassRunner.class) 
@ContextConfiguration(classes = CDPlayerConfig.class) 
public class CDPlayerTest { 

    @Autowired 
    private CompactDisc cd; 

    @Test 
    public void cdShouldNotBeNull() { 
     Assert.assertNotNull(cd); 
    } 

} 

ich diese Beispiele aus einem Buch bin nach, um es testen möchte, dass es funktioniert aber nicht, wie das zu tun i unter dem gleichen Paket Konsole i

Exception in thread "main" junit.framework.AssertionFailedError 
at junit.framework.Assert.fail(Assert.java:55) 
at junit.framework.Assert.assertTrue(Assert.java:22) 
at junit.framework.Assert.assertNotNull(Assert.java:256) 
at junit.framework.Assert.assertNotNull(Assert.java:248) 
at automaticWiring.CDPlayerTest.cdShouldNotBeNull(CDPlayerTest.java:30) 
at automaticWiring.Main.main(Main.java:17) 

Alle Einfuhren der Klassen korrekt sind sogar entfallen, wenn ich mit Spring Web MVC-Framework ein Netbeans Webapp verwende, ich hatte auch JUnit 4.12 jar zur Bibliothek hinzuzufügen, da es wasn t dort am Anfang. Stimmt etwas mit dem Spring-Code nicht oder ist meine Testmethode falsch?

web.xml

<?xml version="1.0" encoding="UTF-8"?> 
<web-app version="3.1" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"> 
<context-param> 
    <param-name>contextConfigLocation</param-name> 
    <param-value>/WEB-INF/applicationContext.xml</param-value> 
</context-param> 
<listener> 
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 
</listener> 
<servlet> 
    <servlet-name>dispatcher</servlet-name> 
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
    <load-on-startup>2</load-on-startup> 
</servlet> 
<servlet-mapping> 
    <servlet-name>dispatcher</servlet-name> 
    <url-pattern>*.htm</url-pattern> 
</servlet-mapping> 
<session-config> 
    <session-timeout> 
     30 
    </session-timeout> 
</session-config> 
<welcome-file-list> 
    <welcome-file>redirect.jsp</welcome-file> 
</welcome-file-list> 
</web-app> 
+0

Sie haben nie den Member 'cd' initialisiert, und ich glaube auch, dass Sie die Testmethode nicht direkt aufrufen sollen, sondern JUnit sie aufrufen soll. –

+0

Wie sollte ich es initialisieren? – Maver

+0

Klicken Sie mit der rechten Maustaste auf die Testdatei in Ihrer IDE> run – dimitrisli

Antwort

0

Sie können diese versuchen:

@RunWith(SpringRunner.class) 
@SpringBootTest 
public class CDPlayerTest { 

    @Autowired 
    private CompactDisc cd; 
    ... 
} 

Beachten Sie, dass die Test-Klasse des gesamten Anwendungskontext lädt whene bevor die Tests ausgeführt werden.

+0

Mit Spring Framework 4.0.1 und Junit 4.12 Bibliotheken kann ich nicht importieren _SpringBootTest_ noch _SpringRunner_ – Maver

Verwandte Themen