2016-07-22 40 views
0

私はRSpecを使って練習するためにRubyでdirected_graphクラスを作成しています。上記のエラー(13行目、 "eql(0)"という行が下にあります)が得られます。遭遇する:構文エラー、予期せぬtIDENTIFIER、expecting keyword_end

私は本当にこのRSpecコードが他のプロジェクト用に作った他のRSpecコードとよく似ているので、実際にこのエラーを理解することはできません。

require "directed_graph" 
include directed_graph 

describe directed_graph do 

    describe ".vertices" do 
     context "given an empty graph" do 
      it "returns an empty hash" do 
       g = directed_graph.new() 
       expect(g.vertices().length()).to() eql(0) 
      end 
     end 
    end 

end 

編集:私は問題は(1)directed_graphがクラスだったし、クラスは大文字で開始する必要があります(私はDirectedGraphある改称)、および(2)あなたが書くことになっていない「が含まれると考えています"クラスのために。

私はこれら2つを修正しました。私のコードは今のところうまく実行されているようです。私は大きなものを見逃してしまった場合に備えて、これをここに残すつもりです。

答えて

0

私は、コードは次のようになりますと信じて:

require "directed_graph" 
include DirectedGraph 

describe DirectedGraph do 
    describe ".vertices" do 
    context "given an empty graph" do 
     it "returns an empty hash" do 
     expect(directed_graph.new.vertices.length).to eql(0) 
     end 
    end 
    end 
end 

は私が理由を説明しましょう。最初のインクルードには、通常、クラス/モジュールが含まれます。ルビのクラスとモジュールは、名前の各部分について大文字で表されます(UpperCamelCaseとも呼ばれます)。 rspecでクラスを記述するときは、UpperCamelCaseも使用する必要があります。私はコードを読みやすくするためにちょっと整理しました。関数を表すのに必ずしも()が必要というわけではありません。それは暗示されています。しかし、時々あなたはそれを必要とします、例えば、expect関数です。

関連する問題