ProcessBuilder ile bir İşlemi başlatan ve çıktısını bir bayt dizisine bağlayan ve sonra işlem bittiğinde bayt dizisini döndüren bir Java yöntemim var.Ünite, ProcessBuilder ve Process kullanan bir Java yöntemini nasıl test edebilirim?
Sözde kod:
ProcessBuilder b = new ProcessBuilder("my.exe")
Process p = b.start();
... // get output from process, close process
Ne bu yöntemi test birim hakkında gitmek için en iyi yolu olurdu?
java.lang.NoClassDefFoundError: test/MockProcessBuilder
at java.lang.ProcessBuilder.<init>(ProcessBuilder.java)
at mypackage.MyProcess.start(ReportReaderWrapperImpl.java:97)
at test.MyProcessTest.testStart(ReportReaderWrapperImplTest.java:28)
Herhangi düşünceler: Bunun beni NoClassDefFoundError verir hatta inanılmaz müthiş JMockit ile, (o nihai) ProcessBuilder alay için bir yol bulmuş değil mi?
Cevap - Olaf tavsiye, ben onun kurucu (şimdi ben test etmek istedim sınıfa Bu arayüz bir örneğini geçmesi bir arayüz
Process start(String param) throws IOException;
için bu satırları üstlenmeden sona erdi), normalde orijinal satırlarla varsayılan bir uygulama kullanarak. Test etmek istediğimde, sadece arayüzün sahte bir uygulamasını kullanıyorum. Bir çekicilik gibi çalışır, yine de burada fazla bir arayüz olup olmadığımı merak ediyorum ...
Ne sen hiç my.exe yürütmek istemediğini olur? –
@DavidI. Yukarıda gösterilen test, yani "my.exe" yi çalıştırmaz. –
Teşekkürler, ben bir JMockit acemi, bu yüzden ilk başta anlamadım. (ama ben büyük bir hayranıyım!) –