merkwürdiges Verhalten von JUnit4

Status
Nicht offen für weitere Antworten.

micbur

Bekanntes Mitglied
Hallo,

JUnit4 soll ja so einfach sein. Ich versteh's aber nicht. Ich habe eine Klasse so wie diese ...
Code:
// Imports

public class FileTest {

   private TestConfig  config;

   private File logPath  = new File("path/to/dir");
   private File tempPath = null;


// einige Hilfsmethoden

   @Test public void testRun() {

      // Deklarationen
      File                     file ...

      // Definitionen
      file = new File(...);
      ...

      for (fileArrayIterator = this.config.getFileIterator(); fileArrayIterator.hasNext(); ) {

         ...
      // Tests
         try {
            // lesen aus der Config und Tests ausführen; mit asserts
         }
         catch (Exception e) {
            ...
         }
      }
   }


   private void setConfig(TestConfig conf) {
      this.config = conf;
   }


   @Before public void init() {
      // da nicht mehr von TestFiles geerbt wird, werden die Variablen hier deklariert
      FileTest test; 


      TestConfig config1 = new TestConfig();
               config1.setDir(new String[]{"path/to/file"}, null);
               config1.setRepetitions(30);
               ...
      // erster Test
      test = new FileTest(config1);
      test.setConfig(config1); // eigentlich überflüssig
//      test.testRun();
      
   }

   public FileTest() {}
   
   public FileTest(TestConfig config) {
      this.config = config;
   }

}

Nun ist das so, dass zuerst die init()-Methode von JUnit abgearbeitet wird. Leider habe ich gesehen, dass die Variable config1 zwar gefüllt wird, aber die Zuweisung nicht klappt. test.config ist null und somit gibt es eine NullPointerException, wenn JUnit testRun() ausführt. Wenn ich allerdings test.testRun() (Zeile 54) selbst in der init()-Methode aufrufe, läuft der Test super und danach kommt die NullPointerException, wenn JUnit selbst die testRun() ausführt.

Mein Frage: Warum?
Ich habe da irgendwo einen Denkfehler, und finde ihn nicht. "In diesem Bild ist ein Fehler versteckt, kannst du ihn finden?"

Ciao, micbur
 

micbur

Bekanntes Mitglied
Ich muss das mal wieder oben festnageln. Ihr testet eure Programme doch auch. Ciao, micbur
 

d80harri

Neues Mitglied
Also um ganz erhlich zu sein hab ich noch nicht ganz verstanden was du eigentlich willst... hab auch keine zeit.. nur folgendes ist mir aufgefallen...

Du versuchst anscheinen in der Init den TestCase zu initialisierne... schön und gut... nur leider versuchst du es eben nur.

Du legst ja in der init methode ein neues TestCase objekt an und configurierst das dann... wenn nun junit drüberläuft, dann ist die Variable config natürlich null. wenn du das Test run ausführst... wie dus in der init auskommentierter weise machst, dann "run"t hier nicht das selbe objekt wie durch den junit-runner...

also:
Code:
@Before public void init() {
      // da nicht mehr von TestFiles geerbt wird, werden die Variablen hier deklariert
      //FileTest test; // DAS brauchste nicht


      TestConfig config1 = new TestConfig();
               config1.setDir(new String[]{"path/to/file"}, null);
               config1.setRepetitions(30);
               ...
      // erster Test
      //test = new FileTest(config1); // das brauchste auch nicht
      //test.setConfig(config1); // eigentlich überflüssig // DAS schon gar nicht
      this.config = config1; // ABER das dafür
//      test.testRun();
     
   }

Gruß Harald
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
Thallius Merkwürdiges Verhalten von Swingworker.cancel() Allgemeine Java-Themen 2
T Merkwürdiges Thread-Verhalten Allgemeine Java-Themen 6
Tommy Nightmare Merkwürdiges Verhalten bei der Datenzuweisung Allgemeine Java-Themen 4
Thallius Swing Merkwürdiges Verhalten beim Panel Tausch Allgemeine Java-Themen 3
Thallius Merkwürdiges StringBuilder verhalten (Char Encoding) Allgemeine Java-Themen 6
P Applet-Zugriffsrechte: merkwürdiges Verhalten Allgemeine Java-Themen 4
R Merkwürdiges Verhalten der equals Method Allgemeine Java-Themen 4
A Streams: merkwürdiges Verhalten Allgemeine Java-Themen 7
A Streams - merkwürdiges Verhalten Allgemeine Java-Themen 2
V Merkwürdiges For-Loop Problem Allgemeine Java-Themen 7
javamax2000 Sehr sonderbares Verhalten Allgemeine Java-Themen 6
kodela Unterschiedliches Verhalten von BufferedReader Allgemeine Java-Themen 3
J Unvorhersehbares Verhalten - benutze ich die falsche Bedingungsprüfung oder brauche ich Threads? Allgemeine Java-Themen 12
N Best Practice Allgemeines Verhalten für ein Interface implementieren? Allgemeine Java-Themen 7
F JTable Pfeiltasten-Verhalten Allgemeine Java-Themen 1
W LocalDateTime Verhalten unerklärlich Allgemeine Java-Themen 1
C Unterschiedliches Verhalten Editor und deployte Application Allgemeine Java-Themen 3
S Threads ThreadPoolExecutor eigenartiges verhalten Allgemeine Java-Themen 5
A Java Verhalten bei parallelem Aufruf derselben Methode?? Allgemeine Java-Themen 2
M Threads Viele Aufrufe aus Thread, komisches Verhalten Allgemeine Java-Themen 8
S getChildAt() Verhalten Allgemeine Java-Themen 4
S Frage zu Threads (Sichtbarkeit und Verhalten) Allgemeine Java-Themen 11
1 Collections Generics, internes Verhalten Allgemeine Java-Themen 16
S Collections Unverständliches Verhalten... Allgemeine Java-Themen 4
M Nach Programmdurchlauf werden Zeichen falsch dargestellt + Anderes Verhalten unter Windows Allgemeine Java-Themen 6
C Komisches Verhalten zwischen Set und List bei contains Allgemeine Java-Themen 6
S (Doppel)Klick-Verhalten vom Desktop unter Java imitieren. Allgemeine Java-Themen 5
A Seltsames Verhalten von JUnit-Tests im Zusammenspiel mit Ant Allgemeine Java-Themen 6
S Verhalten von System.getenv() in Ubuntu / Linux Allgemeine Java-Themen 12
hdi Verhalten bei nicht behandelten Exceptions Allgemeine Java-Themen 2
J Rätselhaftes Verhalten von Collections Allgemeine Java-Themen 5
M Unerklärliches Verhalten bei Variableninitialisierung Allgemeine Java-Themen 11
S Verhalten der Klasse TreeSet... Allgemeine Java-Themen 4
S Jar und Exe verhalten sich unterschiedlich unter Vista Allgemeine Java-Themen 8
M Seltsames Verhalten eines StringReaders Allgemeine Java-Themen 2
spacegaier HeapSpace der VM ändern -> Verhalten von JARs und EXEs Allgemeine Java-Themen 10
M JList seltsames verhalten. Allgemeine Java-Themen 5
K Seltsames Verhalten von byte[] und Strings Allgemeine Java-Themen 6
S Seltsames Verhalten von split() Allgemeine Java-Themen 3
K Überschreiben von 'static'-Methoden hat anderes Verhalten? Allgemeine Java-Themen 2
Rudolf JUnit4-Testklasse erweitern ohne zu vererben Allgemeine Java-Themen 6
B JUnit4 Exception-Test Allgemeine Java-Themen 4
T JUnit4 - Probleme mit der Auswertung Allgemeine Java-Themen 6

Ähnliche Java Themen

Neue Themen


Oben