2015-11-03 12 views
5

Sto cercando di testare il codice seguente senza l'utilizzo di un file xls vero e proprio ...c'è un modo per testare/simulare un input di file usando junit?

File file = new File("file.xls"); 
final FileInputStream input = new FileInputStream(file); 

mio problema è che io non posso creare un'istanza di file, e non so come simulare Sto creando una nuova file e su come deridere cosa aspettarsi.

C'è un modo per farlo usando junit?

Grazie

+1

** Il mio problema è che non riesco a creare un'istanza di File ** - perché? –

+0

non è possibile creare un nuovo file(); e non so quale metodo implementa per essere in grado di creare un'istanza – jpganz18

risposta

1

Sì, ci sono un paio di modi diversi.

È possibile utilizzare qualcosa come Powermock per intercettare la chiamata a nuovo. Vedere questa altra risposta dove spiego come farlo in dettaglio EasyMock - mock object returned from new Object

Vuoi effettivamente i byte dal file excel o un "oggetto Excel"? Potrebbe valere la pena refactoring di passare intorno a un oggetto Workbook o qualsiasi altra cosa si sta utilizzando per analizzare l'excel a valle e quindi utilizzare l'iniezione di dipendenza. Il test può quindi iniettare un oggetto Workbook finto invece di un file reale.