2014年3月22日土曜日

rails4 Rspec Modelのメソッド引数にリクエストパラメーター

環境

  • rails(ruby2.1.0, rails4.0.3)
  • mongoDB

rspecでmodelのテストを行う時、メソッドの引数パラメーターにparamsをそのまま指定することがあると思います。例えば、以下のようなケースです。

test.rb(Model)


  # params is request parameter from controller
  def self.create_with_test(params, user_id)
    create! do |test|
      test.value = params[:test][:value]
      test.user_id = params[:test][:user_id]
      // something
    end
  end

上記のparamsはcontrollerから渡されたリクエストパラメーターです。こういった書き方でModelだけのテストする場合は、パラメーター(params)をrspec側で作成してしてやらないといけません。
やり方は、Hashを使用することになります。以下、サンプルです

test_spec.rb(Model)


        user = FactoryGirl.create :test_user1
        // dummy test request parameter
        params = {:test => {
                      :value => 'my name is jone',
                      :user_id => '1q2w3e4r5t6y'
                  },
                  :name => 'ssssss'
                 }
        user_id = user.id
        Test.create_with_test(params, user_id)

上記のようにすることで、リクエストパラメーター作成してテストを通すことができます。

この記事がお役にたちましたらシェアをお願いします

このエントリーをはてなブックマークに追加

0 件のコメント:

コメントを投稿

Related Posts Plugin for WordPress, Blogger...