2015-10-06 136 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运行想要在不同进程中执行的命令。你可以等到这个过程完成。