0

我正在开发一个简单的类编译器,该编译器从高级语言获取输入并生成在模拟器上运行的准汇编代码。我正在尝试为程序设置测试用例,将模拟器的预期输出与实际输出进行比较,但我一直遇到问题,因为在模拟器上运行代码需要两个处理阶段。在第一阶段,我运行我的编译器,在第二阶段,我在模拟器中运行输出代码(我通过单击此按钮在 Eclipse 中作为外部工具运行:在此处输入图像描述。我已经到了可以测试输出的地步了JUnit 中的编译器(即汇编语言),但我不确定如何采取最后一步从 JUnit 中运行模拟器。

4

2 回答 2

1

是的,您可以使用 Runtime.exec 运行想要在不同进程中执行的命令。您可以等到该过程完成。

于 2015-10-07T02:00:53.630 回答
1

您可以在测试方法的主体中使用Runtime.exec()以编程方式运行模拟器。

但通常你不会想诉诸这样的事情。单元测试应该尝试孤立地测试一件事——在这种情况下是你的编译器。听起来您的测试用例应该由 HLL 输入和预期的汇编输出组成;离开模拟器。

于 2015-10-07T00:28:40.940 回答