Junit - mock-Datei

Ich versuche, die Abdeckung code, der eine Datei. Ich versuche zu vermeiden, mit real-Datei, die für die tests, so dass ich mit Mockito.
Dies ist der code, den ich versuche zu testen:

try {
    byte[] data = Files.readAllBytes(((File) body).toPath());
    immutableBody = data;
    actualHeaderParams.put(HttpHeaders.CONTENT_LENGTH, (new Integer(data.length)).toString());
    contentType = MediaType.APPLICATION_OCTET_STREAM;
  }

Ich bin mit mock-Datei:

File mockedFile = Mockito.mock(File.class);

aber ich bekomme eine Exception auf 'toPath'. Also ich habe einen Pfad oder eine null ist, aber dann wieder ich bekomme Ausnahmen, da die Datei nicht existiert, wird der Pfad.

when(mockedFile.toPath()).thenReturn(Paths.get("test.txt"));

immer:

com.http.ApiException: There was a problem reading the file: test.txt

Gibt es eine Möglichkeit, es zu tun, ohne eine echte Datei für den test?

  • Finden Sie einen Weg, um pass in die Inhalte und externalisieren die Tatsache, dass Sie geschehen, es zu Lesen aus einer Datei. Ändern Sie die Signatur der Methode zum verschieben der Quelle von bytes aus.
  • Es ist in der Regel einfacher zu benutzen Sie einfach @Rule public TemporaryFolder folder = new TemporaryFolder() und erstellen Sie einfach die "falschen" Inhalt der Datei, die Sie brauchen. Mocking-Dateien können schmerzhaft wirklich schnell.
InformationsquelleAutor user2880391 | 2017-03-22
Schreibe einen Kommentar