2015-10-06 135 views
0

我正在開發一個簡單的編譯器,用於從更高級語言獲取輸入並生成在仿真器上運行的準程序集代碼的類。我試圖爲程序設置測試用例,將仿真器的預期輸出與實際輸出進行比較,但由於在仿真器上運行代碼需要兩個階段的處理,所以我一直有問題。在第一階段我運行我的編譯器,在第二階段我在模擬器中運行輸出代碼(我通過點擊這個按鈕在Eclipse中作爲外部工具運行:enter image description here。我已經到了可以測試輸出的點在JUnit中編譯器(即彙編語言),但我不知道如何採取最後一步從JUnit內部運行仿真器。使用Junit進行多步驟測試

回答

1

您可以使用Runtime.exec()從測試內部以編程方式運行仿真器方法

但是通常情況下你不會想要這樣的東西單元測試應該試着單獨測試一個東西 - 你的編譯器在這種情況下聽起來像你的測試用例應該由HLL輸入和預期的組裝輸出;離開仿真器出來了。

+0

exec()的參數應該是什麼?它是我的項目目錄中的模擬器的.exe的路徑嗎? – Adam

+0

路徑和文件。像這樣:'String script =「/path/to/script.sh arg1」;嘗試{Process p = Runtime.getRuntime()。exec(script); ...' – pmorken

1

是的,您可以使用Runtime.exec運行想要在不同進程中執行的命令。你可以等到這個過程完成。