2011-07-17 7 views
1

私の最初のrspecテストのコード化。 headers == niltrueを印刷しますが、次のテスト行headers should be_nilは失敗します。どうして?シンプルなRspecテストは失敗します - 何故ですか?

require 'net/http' 

$url_arr = [] 
$url_arr << ... 
$url_arr << ... 
$url_arr << ... 

module NetHelpers 
    def get_headers(uri) 
     Net::HTTP.get_response(URI.parse(uri)).get_fields('Set-Cookie') 
    end 
end 

describe "new script" do 
    include NetHelpers 

    $url_arr.each do |uri| 
     it "should not return cookies" do 
      headers = get_headers(uri) 
      p "==========> #{headers == nil}" 
      headers should be_nil 
     end 
    end 
end 

はまた、出力は

を持っている:(==を使用して) "新しいスクリプト"

headersが本当にnilが含まれていながら、"新しいスクリプト"が、印刷されたのはなぜ?

答えて

1

ではなく

headers.should be_nil 

を試してみてください。

+0

ありがとうございます - それは動作します!しかし、(私の質問の2番目の部分)なぜ(私の場合)プライマリバージョンの出力に '新しいスクリプト... 'が含まれていますか? 'headers'を表示しようとしました - それはちょっと知られている名前だと思ったが、' undefined'エラーが出ました。 – BreakPhreak

+0

何の出力?あなたの質問には、その部分に関連するコードがないと思います。 – Thilo

+0

間違った行(ドットなしで 'should 'を含む)の出力 - ' new script'(これは 'describe'タイトルです)を含んでいます。質問は十分にはっきりしていますか? – BreakPhreak

関連する問題