1

minitest を使用して、この build_plan メソッドをテストする最良の方法は何ですか?

私の現在の試みは、@account.plan が設定されていることを確認しようとすることですが、その方法がよくわかりません。これは私がやろうとしていることですか、それとも何か他のことですか?

accounts_controller.rb

class AccountsController < ApplicationController

  before_filter :build_plan, :only => [:new, :create]

  def build_plan
    redirect_to '/app/signup' and return unless @plan = SubscriptionPlan.find_by_name(params[:plan])
    @plan.discount  = @discount
    @account.plan   = @plan
  end
end

account_integration_test.rb

require 'minitest_helper'

describe "Account integration" do

  before do
    @account = Factory.build(:account)
  end

  def fill_in_info
    fill_in 'First name', :with => @account.admin.first
    fill_in 'Last name', :with => @account.admin.last
    fill_in 'Email', :with => @account.admin.email
  end

  describe "register" do
    it "should set plan" do
      visit signup_path(:plan => "small_group")
      fill_in_info
      click_button 'Create Account'
      @account.plan.must_be_kind_of SubscriptionPlan #this doesn't work -- @account.plan is nil
    end
  end
end
4

1 に答える 1

0

受け入れテストでは、正しい (おそらくカピバラ) DSL が「minitest_helper」に含まれていることを確認してください。

class MiniTest::Spec

  include Capybara::DSL
  ...
end

適切なヘルパーをセットアップするには、他のいくつかの StackOverflow の投稿を読む価値があります。この1 Railsの機能テストでMinitest::Specを使用した人はいますか? 役に立ちました。

これは、機能テスト用のテスト ヘルパーの要点です (上記のように、まだ Capybara モジュールを追加していません) https://gist.github.com/2990759

于 2012-06-28T13:57:35.153 に答える