2011-08-24 57 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的退出代碼。

相關問題