2011-08-24 61 views
0

我写了一段代码,应该解压缩压缩的.cmd文件并运行它们。是否可以单元测试或断言CMD /批处理文件的结果?

我想单元测试它。到目前为止,为了测试,我创建了一个非常简单的cmd文件(“echo hello world”),将其保存并压缩并使用我的代码进行处理。我可以验证它的工作原理,因为如果用“暂停”替换“echo hello world”,则会出现一个带有暂停命令的命令窗口。但这显然不是自动的。

有没有什么办法,以便它声称的东西我可以自动完成这一测试?例如运行一个不同的DOS命令?

干杯, 马特

+0

你是如何运行它们的? – SLaks

回答

1

更改批处理文件echo Whatever > %temp%\MyResult.txt,然后检查文件是否存在,并具有正确的内容。
(并删除前后文件)

+0

这样做会很好,谢谢。 –

0

基本上,你可以执行你现有的“echo hello world”批处理文件并检查进程的退出代码。

每公约的退出代码0意味着该命令(在您的情况下或批处理文件)成功执行。

如果您的批处理文件有效(即正确解压缩),存在(即正确解压缩到预期位置),不强制退出代码不等于0(例如通过exit /b 1或通过无效语法等),则退出代码将始终为0

在伪代码的测试看起来是这样的:

void Test() 
{ 
    int rc = UnzipAndExecuteBatch(); 

    Assert.AreEqual(0, rc); 
} 

凡UnzipAndExecuteBatch()将是你的实际代码,你想测试。可能被修改,所以它返回cmd.exe的退出代码。

相关问题