我写了一段代码,它应该解压缩压缩的.cmd文件并运行它们。
我想对它进行单元测试。到目前为止,我已经创建了一个非常简单的cmd文件(“echo hello world”)保存并压缩并用我的代码处理它。我可以验证它是否有效,因为如果我用“暂停”替换“echo hello world”,则会出现一个带有pause命令的命令窗口。但这显然不是自动化的。
有什么方法可以自动化这个测试,以便断言?例如,运行不同的DOS命令?
干杯, 马特
答案 0 :(得分:1)
将批处理文件更改为echo Whatever > %temp%\MyResult.txt
,然后检查文件是否存在且内容是否正确
(并删除之前和之后的文件)
答案 1 :(得分:0)
基本上,您可以只执行现有的“echo hello world”批处理文件并检查进程的退出代码。
按照惯例,退出代码为0意味着命令(或您的案例中的批处理文件)成功执行。
如果您的批处理文件有效(即正确解压缩),存在(即正确解压缩到预期位置),则不会强制退出代码不等于0(例如通过exit /b 1
或通过无效语法等。 ),退出代码将始终为0.
在伪代码中,您的测试可能如下所示:
void Test()
{
int rc = UnzipAndExecuteBatch();
Assert.AreEqual(0, rc);
}
UnzipAndExecuteBatch()将是您要测试的实际代码。可能已修改,因此它返回cmd.exe的退出代码。