Testen von Struts-Anwendung

Status
Nicht offen für weitere Antworten.

pymote

Aktives Mitglied
Hallo,

hat jemand Erfahrung mit dem Testen von Struts-Anwendungen? Ich versuche mich gerade mit StrutsTestCase 2.1.3. scheitere aber schon bei anfänglichen Versuchen meine Action-Klassen zu testen. Soweit ich das verstanden habe, erwartet die Test-Klasse die execute-Methoden meiner Action-Klassen. Diese erben allerdings von MappingDispatchAction und irgendwie gelingt es mir nicht die einzelnen Methoden zu testen. Gibt es andere Möglichkeiten?
 

clemson

Bekanntes Mitglied
hmm, dann zeig mal ein bisschen code...

ich verwende bei meinem web projekt das struts test case framework und find' es ganz fein zum testen von struts...
 

pymote

Aktives Mitglied
ok, bin schon ein bisschen weitergekommen:

meine Action-Klasse:

Code:
public class MyActionDispatcher extends MappingDispatchAction{

	public ActionForward anmelden(ActionMapping mapping,
		            ActionForm form,
		            HttpServletRequest request,
		            HttpServletResponse response) {
		
		ActionForward actionForward = mapping.findForward("valid");

		return actionForward;
	}
}

Auszug aus der struts-config.xml

Code:
<action path="/anmelden"
         type="action.MyActionDispatcher"
         scope="session"
         name="DatenForm"
         parameter="anmelden"
         input="page.anmelden"
         validate="true" >
      <forward name="valid" path="/doSomething.do" />
</action>

und schliesslich meine Test-Klasse

Code:
import java.io.File;
import servletunit.struts.MockStrutsTestCase;

public class TestLibrary extends MockStrutsTestCase {

    public TestLibrary(String testName) {
        super(testName);
    }

    protected void setUp() {
    	try {
			super.setUp();
		} catch (Exception e) {
			e.printStackTrace();
		}
    	setContextDirectory(new File("WebRoot"));
    }
    
	public void testAnmelden() throws Exception {

		setRequestPathInfo("/anmelden");
		actionPerform();
		verifyForward("valid");
	}
}

Die Methode anmelden() sollte eigentlich nur das Forward ("valid") weitergeben. Ich bekomme allerdings diese fehlermeldung:

Code:
junit.framework.AssertionFailedError: was expecting '/doSomething.do' but received '/jsp/tiles/tilesBase.jsp'
at servletunit.struts.Common.verifyForwardPath(Common.java:339)
at servletunit.struts.MockStrutsTestCase.verifyForward(MockStrutsTestCase.java:675)
at test.TestLibrary.testAnmelden(TestLibrary.java:26)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at junit.framework.TestCase.runTest(TestCase.java:154)
at junit.framework.TestCase.runBare(TestCase.java:127)
at junit.framework.TestResult$1.protect(TestResult.java:106)
at junit.framework.TestResult.runProtected(TestResult.java:124)
at junit.framework.TestResult.run(TestResult.java:109)
at junit.framework.TestCase.run(TestCase.java:118)
at junit.framework.TestSuite.runTest(TestSuite.java:208)
at junit.framework.TestSuite.run(TestSuite.java:203)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:478)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:344)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
 

pymote

Aktives Mitglied
dann bekomm ich folgenden Fehler:

Code:
junit.framework.AssertionFailedError: was expecting '/doSomething.do' but received '/jsp/tiles/tilesBase.jsp'
	at servletunit.struts.MockStrutsTestCase.verifyForwardPath(MockStrutsTestCase.java:713)
	at test.TestLibrary.testAnmelden(TestLibrary.java:26)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:585)
	at junit.framework.TestCase.runTest(TestCase.java:154)
	at junit.framework.TestCase.runBare(TestCase.java:127)
	at junit.framework.TestResult$1.protect(TestResult.java:106)
	at junit.framework.TestResult.runProtected(TestResult.java:124)
	at junit.framework.TestResult.run(TestResult.java:109)
	at junit.framework.TestCase.run(TestCase.java:118)
	at junit.framework.TestSuite.runTest(TestSuite.java:208)
	at junit.framework.TestSuite.run(TestSuite.java:203)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:478)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:344)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)

liegt wahrscheinlich an Tiles
 

pymote

Aktives Mitglied
da muss ich aber als zweites argument ne tiles-definition angeben. die hab ich aber für eine action (doSomething.do) natürlich nicht.
 

clemson

Bekanntes Mitglied
irgendwie hat das strutstestcase ja auch recht mit der aussage, dass der pfad nicht übereinstimmt. ich denke, dass strutstestcase löst den action-forward /doSomething.do auf, und vergleicht dann mit dem wirklichen pfad an den weitergeleitet wird.

er soll ja auch an die tilesBase.jsp weiterleiten, oder? bzw. wie schaut die action definition von doSomething aus?
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Spring Testen mit mvc.perform(get(... Allgemeines EE 3
G JavaEE Anwendung Testen Allgemeines EE 0
S Eclipse: Teilmodule beim Testen werden nicht gestartet Allgemeines EE 2
D Testen mit Mockito ohne Delegation? Allgemeines EE 2
J Testen mit Mockito Allgemeines EE 2
H Webservice testen Allgemeines EE 7
MQue Testen von JEE Projekten Allgemeines EE 3
K Selenium: CSS Testen Allgemeines EE 2
J Mit welchen Tools EJBs testen? Allgemeines EE 12
D Controller-Klassen eines Servlets testen mit JUnit Allgemeines EE 3
P Suche free Webanwendung zu testen Last, Performance Allgemeines EE 3
M Lokales Testen - Pfade unterschiedlich Allgemeines EE 2
B Tomcat JNDI-Realm - LDAP mit Windows testen? Allgemeines EE 2
S Struts 2 datetimepicker Allgemeines EE 3
W Struts Tutorial für EE Noobs? Allgemeines EE 2
N Struts vs JSF ? Allgemeines EE 7
W Speicher-Problem bei WebApp unter Tomcat, Struts, Hibernate Allgemeines EE 3
Lex Property per html:link schreiben in struts Allgemeines EE 2
Shihan Line Breaks in <br /> umwandeln (Struts) Allgemeines EE 7
S Struts: zwei JSP's nutzen eine Action Allgemeines EE 5
G Struts: ActionMessage value in JSP anzeigen Allgemeines EE 2
S Problem mit Struts und tiles Allgemeines EE 4
S Struts und Session Allgemeines EE 2
K Struts - FormBean mit 2 Listen - Anzeigen und Speichern Allgemeines EE 2
S Probleme mit struts - ActionServlet Allgemeines EE 6
C Struts in iFrame Allgemeines EE 2
Z Struts: Formularfelder initialisieren Allgemeines EE 3
S Struts: Wert in einem iterierten Drop-Down Menü selektieren Allgemeines EE 7
T Struts 2 Allgemeines EE 6
R Struts-Action in JSP abfragen? Allgemeines EE 2
J struts: Bild als submit-button Allgemeines EE 2
J Internationalization mit Struts Allgemeines EE 2
E bei struts inhalte über mehrere seite verteilen Allgemeines EE 6
velaluka Struts- falsches Character-Encoding? Allgemeines EE 3
M URL Darstl. und Struts Allgemeines EE 2
G Struts beans Allgemeines EE 7
D Struts + Table Allgemeines EE 6
L Struts - Action auslösen bei Browser Back Allgemeines EE 2
N Struts - Problem mit <html:link> Action Allgemeines EE 3
netspy Struts, Spring oder ... ? Allgemeines EE 5
S Struts - Direktaufruf eines URL verhindern Allgemeines EE 11
1 Frage zu Struts und findForward Allgemeines EE 4
N Struts Jboss und Filter Allgemeines EE 2
S Fragen zu: Servlets, Struts & Hibernate Allgemeines EE 9
T Struts und Objekte in Comboboxen Allgemeines EE 4
J Probleme mit Struts Allgemeines EE 3
K STRUTS The server encountered an internal error Allgemeines EE 5
F struts logic:iterate Allgemeines EE 5
M STRUTS/Cannot retrieve definition for form bean null on acti Allgemeines EE 4
G struts-config.xml Allgemeines EE 3
H Ich bin sehr verwirrt - struts, jsp, jsf . ? Allgemeines EE 53
P Struts Form Bean vs. Session Variable Allgemeines EE 6
A Tomcat undeploy unter Windows klappt nicht wegen struts.jar Allgemeines EE 2
B Struts Problem: Array in JSP ausgeben (logic:iterate) Allgemeines EE 12
M Struts Deployment Allgemeines EE 3
R Mehrsprachige Seite mit Struts & Co. ? Allgemeines EE 5
S mehrere Message Resources in Struts ansprechen Allgemeines EE 7
G Values aus DB in Input-Feldern anzeigen (Struts) Allgemeines EE 2
G Exception creating bean of class . (Struts) Allgemeines EE 8
B Verwendung von DynActionForm (Struts) Allgemeines EE 10
K dynamischer Zugriff auf .properties (Struts) Allgemeines EE 2
K Struts html:messages tag Allgemeines EE 2
M Struts File Upload problem Allgemeines EE 6
G Validierung mittels Struts. Benötige Hilfe. Allgemeines EE 7
J Buchempfehlung: Servlets, JSP, Struts, JSTL Allgemeines EE 3
P struts "beliebige motive in der datenbank finden" Allgemeines EE 6
P Struts und Frames Allgemeines EE 13
L jfreechart und Struts / JSPs Allgemeines EE 3
P struts Hibernate MySQL Select Statement Allgemeines EE 24
P keine verbindung vom struts framework zu mysql Allgemeines EE 2
R Vernünftige Session-Verwaltung mit Struts Allgemeines EE 4
P Struts Anwendung- FormBean Tabelle mit input type=text Allgemeines EE 2
G Probleme mit Validierung (Struts, validation.xml) Allgemeines EE 4
M Struts - ActionForward Allgemeines EE 9
clemson gesplittete struts-config mittels ant zusammenbauen Allgemeines EE 2
J Struts Textfeld Allgemeines EE 10
M Struts shale Allgemeines EE 7
M Struts - jsp site - werte formatieren Allgemeines EE 6
clemson mehrere Mail Attachments - JSP Struts Allgemeines EE 7
T JSTL + Struts (inkl.Hibernate) -> forEach Problem Allgemeines EE 6
R Struts FormBean Allgemeines EE 4
S Struts 1.1 download einer Datei Allgemeines EE 4
R Use bean in scriptlet in struts Allgemeines EE 4
S reagieren auf select events in jsp-struts seiten Allgemeines EE 5
P Struts - Text formatieren Allgemeines EE 6
C Grafische Komponenten unter Struts jsp (Liste) Allgemeines EE 4
P Struts - Abarbeitung Allgemeines EE 3
P J2EE Struts - Database connection failed - Hilfe?:( Allgemeines EE 6
P J2EE Struts Allgemeines EE 2
R struts 1.0.2 Checkbox-Property bleibt immer false Allgemeines EE 3
TRunKX Werteübergabe von einer *.jsp in eine *.java ohne struts Allgemeines EE 4
clemson [Struts] Validierung server-seitig bringt StackOverflowError Allgemeines EE 5
clemson [Struts] HTML-Checkbox Tag ID Allgemeines EE 2
clemson [Struts] Einer Action Parameter übergeben Allgemeines EE 2
clemson [Struts] Innerhalb Action auf form zugreifen Allgemeines EE 4
G In einer JSP auf Struts-Elemente "reagieren" Allgemeines EE 4
clemson [Struts] struts-config.xml parsen Allgemeines EE 2
clemson [Struts] Parameter an ActionForward anhängen Allgemeines EE 3
clemson [Struts] TilesRequestProcessor - processRoles Allgemeines EE 14
F Struts Allgemeines EE 9

Ähnliche Java Themen

Neue Themen


Oben