2011-07-27 8 views
0

私のコントローラのアクション:私のlib/single.rbでlib /ディレクトリのメソッドを含むRailsのコントロールレットの動作をテストする方法は?

def single 
    final_static_matrix = Single.final_static_matrix(average_static_matrix, params[:priorities]) 

    ... 

    end 

:私のcontroller_spec.rbで

module Single 
    def self.final_static_matrix(average_static_matrix = {}, priorities = {}) 
    final_static_matrix = Hash.new 

    for i in 0..average_static_matrix.length-1 
     final_static_matrix[i.to_s] = average_static_matrix*priorities[i.to_s] 
    end 

    final_static_matrix 
    end 
end 

it "should be successful" do 
    get :single, :id => 1 
    priorities = {"0" => "1"} 
    matrix = {"0" => "3"} 
    Single.final_static_matrix(matrix, priorities) 
    response.should be_success 
end 

1)私はから関数を呼び出す必要がありますどのようにlib /ディレクトリ? 2)コントローラファイルでテストを書いたり、single_spec.rbのようなsmthを作成したら、どうすればよいでしょうか?

答えて

1

rspec2 hereのドキュメントを確認できます。

0

アプリケーションに含めている場合は、テストで利用できるようにする必要があります。

コントローラテストでは、コントローラをテストします。 別途必要な場合は、ライブラリ自体の単体テストを行うことができます。あなたは予想通りfinal_static_matrix行為かどうかをテスト

describe "GET :single" do 
    it "succeeds" do 
    Single.should_receive(:final_static_matrix).and_return('something') 

    get :single, :id => 1 
    end 
end 

と内部spec/lib/single_spec.rb:コントローラスペックの内側に、私はメソッドが呼び出されることをテストします:私は何だろう

関連する問題