2012-02-07 9 views
0

私はちょうど最初の時間のためにそれをしようとしているときに、私は、RSPECバグのバグを打つと思います...RSPECのバグ(?)

次の例では、RSPECはの名前に敏感です:parser.rbファイルの 'Parser'でテストは失敗しますが、名前を変更するだけで 'FooParser'が機能します。

require_relative './parser.rb' 
describe Parser do 
    it 'should do the trick' do 
     @parser = Parser.new "test.pas" 
    end 
end 

も、このようなプレーンなコードを有する、私のコンストラクタ引数に文句を言うだろう:

class Parser 
    def initialize arg 
    end 
end 

RSPEC誤ったログは次のようになります。自分の中に書かれたよう

1) Parser should do the trick 
    Failure/Error: @parser = Parser.new "test.pas" 
     ArgumentError: 
     wrong number of arguments(1 for 0) 
+1

スタックトレースと正確なエラーメッセージを送信してください。 –

+0

RSpecのバグが報告されているかどうか尋ねる場所ではありません。 –

答えて

0

スペック質問はうまくいくはずです(実際には何もしません)が、実際の仕様ではshouldに暗黙の主語を使用しようとしました:

it 'should do the trick' do 
    @parser = Parser.new "test.pas" 
    should_not be_nil 
end 

あなたはこのようshouldまたはshould_not裸を使用している場合は、RSpecのは、あなたがテストしているかを把握する必要があります。あなたが何かのクラスを記述しているかどうかを確認し、インスタンス化しようとします。あなたのケースでは、引数なしのParser.newを使用します。あなたはこのような何かを思っているかもしれ

は:

it 'should do the trick' do 
    Parser.new("test.pas").should_not be_nil 
end 

これはダムの試験ですが、多分それは(何ができるか)の問題を示しています。