2014-04-15 57 views
0

我有一個功能,它會在/tmp的某個地方用空的臨時文件打開用戶的編輯器(在$EDITOR中指定)。用戶必須保存此文件,並且如果它已更改內容,則應該使用該臨時文件運行另一個命令。由外部編輯器編輯的測試tmp文件

When I run `app new` 
And I the user enters and saves text 
Then "another-app --process <tmpfile>" should be run 

我已經有步驟,檢查運行一個命令,它給我留下了兩個問題:

  1. 如何非交互式編輯這個臨時文件?
  2. 我的cuke如何知道隨機tempfile的名字來檢查正確的命令是否運行?

注:我已經設置了一個僞裝解決方案,所以我可以將$EDITOR設置爲只輸出一些文本到指定文件的腳本。這可能是(1)的一個解決方案,但仍然給我留下了(2)。

回答

2

很容易,因爲它只是一個更改文件的命令。無論是編輯還是sed或其他什麼都無所謂。你可以單元測試調用該命令的對象以確保它運行$EDITOR path/to/file但這不是你的驗收測試應該關心的事情。因爲Cucucmber不必知道運行的命令,所以很容易。這是一個單元測試的事情。黃瓜只能觀察外部效應(某些文件已創建,某些輸出顯示在屏幕上等)。

讓黃瓜觀察什麼發生如用戶所見。讓你的單元測試如何發生。