使用 Junit 进行多步测试

multistep testing with Junit

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

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

但通常你不会想求助于这样的事情。单元测试应该尝试孤立地测试一件事——在这种情况下是你的编译器。听起来您的测试用例应该包含 HLL 输入和预期的汇编输出;将模拟器排除在外。

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