2012-02-15 1 views
5

コマンドラインスクリプトにCucumberを使用するために、aruba gemをインストールしました。それは私のGemfileにだ、それが動作することを確認するために、「機能/ env.rb」に"command"からの出力のチェックにはNilClassの予期しないクラッシュが含まれているはずです

を私は正しいバージョンがインストールされていることを確認することができ、私は

require 'aruba/cucumber' 

を含めました、私は次のシナリオを書きました:

@announce 
Scenario: Testing cucumber/aruba 
    Given a blank slate 
Then the output from "ls -la" should contain "drw" 

物事が失敗すると仮定します。

それは失敗しませんが、それは間違った理由のために失敗します。これが機能しない理由

@announce 
Scenario: Testing cucumber/aruba     
    Given a blank slate       
    Then the output from "ls -la" should contain "drw" 
     You have a nil object when you didn't expect it! 
     You might have expected an instance of Array. 
     The error occurred while evaluating nil.[] (NoMethodError) 
     features/dataloader.feature:9:in `Then the output from "ls -la" should contain "drw"' 

誰もが任意のアイデアがありますか?これは非常に基本的なアルバの行動であるようです。

答えて

8

'When'ステップがありません - arubaの出力に含める必要があるステップは、コマンドが既に実行されている必要があります(それはそれ自身を実行せず、ルックアップのみです)。

@announce 
Scenario: Testing cucumber/aruba 
    Given a blank slate 
    When I run `ls -la` 
    Then the output from "ls -la" should contain "drw" 

これは私のマシン上で、生産:

@announce 
Scenario: Testing cucumber/aruba      # features/test_aruba.feature:8 
    When I run `ls -la`        # aruba-0.4.11/lib/aruba/cucumber.rb:56 
     $ cd /Users/d.chetlin/dev/mine/ladder/tmp/aruba 
     $ ls -la 
     total 0 
     drwx------ 2 d.chetlin staff 68 Feb 15 23:38 . 
     drwx------ 7 d.chetlin staff 238 Feb 15 23:38 .. 

    Then the output from "ls -la" should contain "drw" # aruba-0.4.11/lib/aruba/cucumber.rb:86 

1 scenario (1 passed) 
2 steps (2 passed) 
0m0.465s 
+0

ありがとうございました。私は、 "ls -la"の出力に "drw"が含まれていなければならないと仮定していました。しかし明らかにそれはしません。 2つの別々のステップに2つを分けて、そのトリックをしました。 – Agazoom

+0

あなたが答えを受け入れることを躊躇しているなら、その場合、私は感謝するでしょう:-) – checkorbored

+0

完了。申し訳ありません...ちょっとこのstackoverflowのことが新しいです。 :-) – Agazoom

関連する問題