JUnit und dynamische Tests

Status
Nicht offen für weitere Antworten.
M

Mullle

Gast
Ich wollte mal fragen, ob es in JUnit möglich ist Tests dynamisch hinzuzufügen. Normalerweise hat man ja eine Testsuit in der die Tests fest codiert sind. Ich würde es gerne so gestalten das man einem Testcase unterschiedliche Parameter vorgibt, die er testen soll, ohne das man den gleichen Testcases immer wieder codieren muss.

Code:
import junit.framework.*;
public class TestExample extends TestCase {
    public void testOne()
    {
        assertEquals(1, Test(5));
    }
    public void testTwo()
    {
        assertEquals(2, Test(10));
    }
    public void testThree()
    {
        assertEquals(3, Test(15));
    }
    public void testFour()
    {
        assertEquals(4, Test(20));
    }
}

Dafür würde ich nur noch gerne einen Test durchführen, der dann aber die Parameter woanders auslesen kann.
(z.B. ein XML File - Der Benutzer schreibt in ein XML File welchen Test er mit welchen Parameter ausführen will[/code]
 
M

maki

Gast
Was möchtest du denn genau?

"Tests dynamisch hinzufügen" ???

Oder deine testdaten externalisieren?
 
G

Guest

Gast
Sorry... du hast recht, nicht dynamisieren, sondern externisieren.
 
M

maki

Gast
Testdaten externalisieren ist keine schlechte Idee, allerdings muss man dann unbedingt darauf achten, dass die Tests lesbar bleiben(!!!).

Testdaten kann man prinzipiell in vielen versachiedenen Datenquellen(Dateien, RDBMS, etc.pp.) und Formate(XML, Properties, eignene Formate) externalisieren, allerdings ist es nötig zu wissen, um was für Daten es sich dabei handelt.

Sollte man natürlich nur machen, wenn es sein muss, da die lesbarkeit darunter leiden kann.
 
G

Guest

Gast
Gibt es da für JUnit schon bereits fertige Tools? Damit wäre eigentlich meine Frage schon beantwortet.
 
M

maki

Gast
Für JDBC Tests zB. gibt es zB. DBUnit, wenn du "normale" Daten hast, kannst du diese zB aus einer txt Datei mit einem BufferedReader einlesen und mit einem StringTokenizer trennen, es kommt wie gesagt auf die Daten an.

Allerdings sollte man nicht wahllos alle Daten aus den tests externalisieren, lohnt sich aus mehreren Gründen erst ab einer bestimmten Datenmenge, ob man diese Datenmenge wirklich brauchtist eine andere Frage, in deinem Beispiel müsste man wissen, was Test genau machen soll.
 
M

Mulle

Gast
Also ich hab das Tool JTestCase gefunden womit man Daten externalisieren kann Beispiel:

Java Code
Code:
  // Asserting result
        boolean succeed = testCase.assertTestVariable("result",
            (new Integer(result)));

XML Code
Code:
       <asserts>
         <assert name="result" type="int" action="EQUALS">10</assert>
       </asserts>
    ..........

Aber lösen tut das mein Problem nicht.

Wenn ich einen assertEqual durchführen will und dafür mehre Klassen zu testen habe, dann möchte ich eigentlich bloss einmal die Testsuit dafür anlegen und dem dann mehrfach die zu testende Methode übergeben.[/code]
 
M

maki

Gast
Wenn ich einen assertEqual durchführen will und dafür mehre Klassen zu testen habe, dann möchte ich eigentlich bloss einmal die Testsuit dafür anlegen und dem dann mehrfach die zu testende Methode übergeben.
Pro Klasse eine TestCase Klasse ist imho eine wichtige Regel, Tests sollten von einander unabhängig sein, denke dass wir hier ohne konkretes Beispiel nicht weit kommen werden, denn so wie du das schilderst, hast du enorme Redundanzen (die Methoden mehrerer Klassen sollen dasselbe Ergebnis liefern) die unbedingt weg sollten ;)
Liegt aber wahrscheinlich an deinem fast nicht vorhandenen Beispiel.
 
G

Guest

Gast
Da finde ich das JTestCase schon geschickter, im Grunde bietet es genau das was ich brauche. Bei JUnit, müsste ich einen extra XML Parser zum externalisieren der Daten verwenden. JTestCase bietet das schon vom Grund aus an.
 

sauerkraut

Mitglied
Gibt es eigentlich irgendwie eine Möglichkeit in JUnit einen Parameter in der Testsuit zu übergeben?

Code:
	public NewTest(String method, String test) {
		super(method);
	}

	public static TestSuite suite() {
		TestSuite suite = new TestSuite();
		suite.addTest(new NewTest("testOne", "test"));
		return suite;
	}

Code:
    public void testOne(String test)
    {
		assertEquals(test, "test");
    }
 

sauerkraut

Mitglied
Also ich verwende jetzt JUnit 4 um meine Daten zu parametisieren, allerdings hab ich bisher noch keine Möglichkeit gefunden die Daten auch zu externalisieren. Hat damit jemand schon Erfahrung bei JUnit 4?
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
Zrebna Wieso sind eigentlich JUnit-Tests in src/test/java platziert - nur Konvention? Allgemeine Java-Themen 7
harrytut Java Input/Output Tests Junit Allgemeine Java-Themen 3
B Junit Test Allgemeine Java-Themen 8
J Junit surefire: enrich test information Allgemeine Java-Themen 0
J Junit start surefire for manual testing Allgemeine Java-Themen 1
P No JUnit tests found Allgemeine Java-Themen 5
F Junit Test + Cucumber - JSON auslesen und in einem weiteren Schritt nutzen Allgemeine Java-Themen 0
J JUnit - Auslassen von Code Allgemeine Java-Themen 25
S Zugriff auf jUnit Test Suite Runner-Instanzen innerhalb von Test Classes Allgemeine Java-Themen 7
S Eclipse Probleme beim Implementieren / Ausführen von jUnit 5-Test Suites Allgemeine Java-Themen 14
S Parametrisierte jUnit 5-Tests mit eigenen Datentypen/Klassen-Objekten als Test-Parameter Allgemeine Java-Themen 0
K Input/Output JUnit: Log Inhalte, falsche Assertion Allgemeine Java-Themen 2
H OOP Testen einer Exception mit JUnit Allgemeine Java-Themen 8
AssELAss Junit-Tests für SQL-Veribindung sowie SQL-Queries? Allgemeine Java-Themen 3
O Maven - JUnit - H2 Allgemeine Java-Themen 1
M Selenium JUnit Tests (Auswahl von Testmethoden auswerten) Allgemeine Java-Themen 5
C JUNIT - ANT - build.xml Allgemeine Java-Themen 0
Airwolf89 JUnit: Vorschläge/ Best Practice Allgemeine Java-Themen 7
M JUnit Serverseitig? Wie geht sowas? Allgemeine Java-Themen 2
E JUnit wie Testergebnisse pro Test ("Test Report") erhalten? Allgemeine Java-Themen 1
B JUnit Zufalls Operation testen Allgemeine Java-Themen 1
P JUnit Allgemeine Java-Themen 2
B jUnit 4: Wie protokolliert man Testergebnisse? Allgemeine Java-Themen 1
H JUnit Fehler beim Compilieren - erledigt Allgemeine Java-Themen 0
M JUnit Test Suites Allgemeine Java-Themen 2
L JUnit - automatisiertes vs. manuelles Testen? Allgemeine Java-Themen 6
B Hilfe bei JUnit Test Allgemeine Java-Themen 1
M JUnit & Multithreading - sehr seltener Fehler Allgemeine Java-Themen 3
A JUnit/Hashcode Problem Allgemeine Java-Themen 5
X Problem mit URLClassLoader und JUnit Allgemeine Java-Themen 3
N JUnit Allgemeine Java-Themen 13
M Junit Tests durchführen Allgemeine Java-Themen 18
M JVM Probleme JUnit Allgemeine Java-Themen 2
G NUnit Features in JUnit Allgemeine Java-Themen 2
darekkay (JUnit) Testdaten generieren - Framework? Allgemeine Java-Themen 2
A JUnit problem Allgemeine Java-Themen 9
T Organisation von Junit Testfällen? Allgemeine Java-Themen 2
M JUnit Tests vs. DBUnit Tests Allgemeine Java-Themen 3
P Klassen Junit test funktioniert nicht... Allgemeine Java-Themen 11
S Die Zeile die JUnit gerade ausführt lesen Allgemeine Java-Themen 15
aze JUnit: Testen ob bestimmte Exception nicht auftritt Allgemeine Java-Themen 18
U Fehler: Hauptklasse org.junit.runner.JUnitCore konnte nicht gefunden oder geladen werden Allgemeine Java-Themen 2
G JUnit Test Methoden in anderen Thread verlagern Allgemeine Java-Themen 4
J JUnit-Tests Zeichensatzproblem ? Allgemeine Java-Themen 2
J JUnit, TestCase vs "einfacher" Test Allgemeine Java-Themen 3
S [JUnit] Name von TestCase bekommen Allgemeine Java-Themen 4
1 JUnit Test Suit Allgemeine Java-Themen 2
T Junit-Tests in Java Klasse ausführen Allgemeine Java-Themen 26
J JUnit - werfen von Exceptions testen Allgemeine Java-Themen 17
M JUnit TestSuite erstellen Allgemeine Java-Themen 2
B JUnit und mehrere Instanzen der selben Applikation Allgemeine Java-Themen 4
G Testcases mit Junit auf private-Methode Allgemeine Java-Themen 7
G Input/Output System.in "umbiegen" für junit-Test Allgemeine Java-Themen 4
C JUnit und das Zulassen von RuntimeExceptions Allgemeine Java-Themen 5
ruutaiokwu junit mit annotations geht nicht? Allgemeine Java-Themen 5
T JUnit-Log auslesen Allgemeine Java-Themen 13
C JUnit Tests Allgemeine Java-Themen 4
fastjack JUnit Supplementary Classes Allgemeine Java-Themen 4
O Junit Reports / Logs als XML ohne Maven/Ant Allgemeine Java-Themen 7
M Junit und Mocks Allgemeine Java-Themen 5
fastjack jUnit und Test von equals, hashCode, toString Allgemeine Java-Themen 11
D junit - frage zu fixtures/test suites Allgemeine Java-Themen 11
A Seltsames Verhalten von JUnit-Tests im Zusammenspiel mit Ant Allgemeine Java-Themen 6
S JUnit: Erzeugen einer IOException Allgemeine Java-Themen 9
G JUnit Tests Allgemeine Java-Themen 7
G JUnit Test Allgemeine Java-Themen 5
S JUnit - was mocken, was nicht? Allgemeine Java-Themen 3
S JUnit TesSuite und @Repeat Allgemeine Java-Themen 2
S JUnit Tests für GUI / Oberflächen Allgemeine Java-Themen 2
M Junit und Mocks bei JDBC Daos Allgemeine Java-Themen 8
M JUnit Problem mit AssertionFailedError Allgemeine Java-Themen 2
B Testfälle mit JUnit Allgemeine Java-Themen 4
S JUnit Allgemeine Java-Themen 15
N ClassNotFound Exception bei JUnit Test? Allgemeine Java-Themen 2
G ANT Tutorial . Schritte bzgl. Junit Bibliothek Allgemeine Java-Themen 4
A JUnit Reports zu groß für XSLT Allgemeine Java-Themen 4
P JUnit unter Eclipse: Problem mit Exception Allgemeine Java-Themen 8
GilbertGrape Warum schlägt JUnit-Test fehl? Allgemeine Java-Themen 19
K Bekomme JUnit TEst nicht zum laufen :( Allgemeine Java-Themen 9
K Junit: Frage zum Ablauf Allgemeine Java-Themen 3
K JUnit: Tests über ant aufrufen Allgemeine Java-Themen 2
S JUnit und EasyMock Allgemeine Java-Themen 7
B Wie alt ist JUnit? Allgemeine Java-Themen 2
A Junit Exceptions testen Allgemeine Java-Themen 3
P Testen mit JUnit Allgemeine Java-Themen 8
7 JUnit: Testproblem. Allgemeine Java-Themen 23
G Ant + JUnit Allgemeine Java-Themen 2
F JUnit unter Ant Allgemeine Java-Themen 3
S Integer zu int konvertieren - JUnit Allgemeine Java-Themen 12
G testen mit JUnit? Allgemeine Java-Themen 3
K JUnit 4 User Interaktion Allgemeine Java-Themen 7
M Ant + Junit + Testclass in Jar Allgemeine Java-Themen 3
G Junit 4 - TestSuite Allgemeine Java-Themen 6
B JUnit Allgemeine Java-Themen 2
T CheckStyle, JUnit und FindBugs aus Java-Programm starten Allgemeine Java-Themen 2
S JUnit will ins Netz! Allgemeine Java-Themen 2
B JUnit - Gleichen Test x-mal durchlaufen Allgemeine Java-Themen 2
F Hilfe: Adjazenzmatrix mittels JUnit testen. Allgemeine Java-Themen 2
H JUnit Allgemeine Java-Themen 5
N Problem mit Ant und JUnit Allgemeine Java-Themen 5

Ähnliche Java Themen

Neue Themen


Oben