2011-12-10 65 views
3

我正在測試Aruba的Gem。我的問題是,即使我在bin目錄中沒有任何東西,當我運行「可執行文件」時,步驟就會通過。 這是場景。Aruba的Ruby gem CLI測試

Scenario: Send SMS 
    When I run `serialsms` 
    Then message should be sent 

功能/支持/ env.rb

$LOAD_PATH.push File.join(File.dirname(__FILE__), "/../../lib") 
ENV['PATH'] = "#{File.expand_path(File.dirname(__FILE__) + '/../../bin')}#{File::PATH_SEPARATOR}#{ENV['PATH']}" 
require 'serial_sms' 
require 'aruba/cucumber' 

黃瓜輸出

Scenario: Send SMS   # features/send_sms_cli.feature:7 
    When I run `serialsms`  # aruba-0.4.9/lib/aruba/cucumber.rb:56 
    Then message should be sent # features/send_sms_cli.feature:9 

1 scenario (1 undefined) 
2 steps (1 undefined, 1 passed) 
0m0.123s 

You can implement step definitions for undefined steps with these snippets: 

Then /^message should be sent$/ do 
    pending # express the regexp above with the code you wish you had 
end 

這是阿魯巴的正常行爲還是我做錯了什麼。

回答

3

如果您在功能定義之前添加@announce鉤子,您可以獲得有關aruba所做的一些擴展信息。

尤其是aruba爲自己創建一個tmp目錄,複製你的源碼等等做了很多時髦的事情。但是這可能不是你的問題。

IIRC的

When I run "foo" 

步驟定義是不是一個失敗它沒有斷言或匹配器。你需要的東西跟着它像

Then it should pass .... 

得到一個失敗的測試(檢查退出代碼,事情發送到STD(OUT | ERR)等)