JUnit: Erzeugen einer IOException

S

sven11

Gast
Hallo zusammen,

über einen BufferedReader lese ich einer Methode eine Datei ein. Über einen try-catch Block fange ich eine FileNotFoundException sowie eine IOException ab. Das Erzeugen einer FileNotFoundException für einen JUnit Testfall ist simpel, allerdings ist mir momentan noch keine Möglichkeit eingefallen, wie man ein IO-Exception hervorrufen kann. Theoretisch müsste man doch während des Lesevorgangs die zu lesende Datei löschen, dann müsste diese Exception geworfen werden. Doch dann stellt sich nur die Frage, wie man dies umsetzt. Oder gibt es noch eine einfachere Möglichkeit?

Danke schonmal im Vorraus.
 

Final_Striker

Top Contributor
jetzt nicht getestet, aber ich denke alle sachen, die beim schreiben so schief gehen können.

- versuch auf einem nicht vorhandenen laufwerk zu schreiben
- versuch in eine geschützte datei zu schreiben
- versuch eine geschützte datei zu überschreiben
 
S

sven1

Gast
Hallo,

es geht hier um einen BufferedReader, also das einlesen einer Datei.

Das Lesen von einen nicht vorhandenen Laufwerk führt zu einer FileNotFoundException.
 

mvitz

Top Contributor
Vermutlich (wenn du den Code der Methode postest, könnte man da mehr sagen) bleibt einem hier nur das "Mocken". Der Mock könnte anschließend eine IO-Exception schmeißen.
 
S

sven11

Gast
Hallo,

hier ein Teil des Codes (vereinfacht):
Java:
public static boolean loadFile(String filename) {
	BufferedReader read = null;
	try {
		read = new BufferedReader(new FileReader(filename));
		while ((line = read.readLine()) != null) {
			list.add(line);
		}
	} catch (FileNotFoundException e) {
		System.out.println("Datei wurde nicht gefunden!");
	} catch (IOException e) {
		System.out.println("Ein/Ausgabefehler!");
	} finally {
		if (read != null) {
			try {
				read.close();
			} catch (IOException e) {
				System.out.println("Ein/Ausgabefehler!");
			}
		}
	}
}
 

mvitz

Top Contributor
Da lässt sich dann nicht viel machen (mit Mocks), aber wieso möchtest du überhaupt zwangsweise die IO-Exception erzeugen? Man sollte nicht um aller Mittel Wege 100% Code-Coverage erzwingen.
 
M

maki

Gast
Da lässt sich dann nicht viel machen (mit Mocks), aber wieso möchtest du überhaupt zwangsweise die IO-Exception erzeugen? Man sollte nicht um aller Mittel Wege 100% Code-Coverage erzwingen.
:toll:

Vor allem muss man sich auch fragen, was man testen will und ob das Sinn ergibt.
Die VM wird auf jedenfll eine FileNOtFoundExceptio werfen wenn sie die Datei nicht findet, dazu braucht ma doch keinen Test, selbiges gilt wenn die VM eine Datei nicht lesen kann, gibt es eine IOException.
Ausser natürlich die VM ist das zu testende System/Subjekt ;)

Man kann übrigens auch dafür sorgen, dass Test einfach zu schreiben sind ;)
 
Zuletzt bearbeitet von einem Moderator:

Janus

Bekanntes Mitglied
Statische black-box methode. Sowas lässt sich nicht sinnvoll testen.
Java:
interface SomeReader {
  boolean read( InputStream is ) throws IOException;
}

class FileNotFoundInputStreamMock extends InputStream {
  int read() throws FileNotFoundException() {
    throw new FileNotFoundException();
  }
}
 
J

JohannisderKaeufer

Gast
Einer Datei die Leseberechtigung entziehen.

Code:
chmod 100 dateiname
chown root:root dateiname

Die Datei sollte damit erhalten bleiben => keine FileNotFoundException.
Ein lesen der Datei sollte sofern der besitzer nicht root ist nicht funktionieren und eine IOException werfen.
 

FArt

Top Contributor
Noch zum Code:
in den catch-Blöcken verwirfst du die Exception-Message und den Stacktrace, was allgemein eine Fehlersuche erheblich erschwert.
 
Ä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
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
M JUnit und dynamische Tests Allgemeine Java-Themen 11
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