1

私は ror が初めてで、 Capybara でテストを書くことに固執しています。私がする必要があるのは、ユーザーがボタンをクリックして新しいケースの作成をテストすることです。しかし、メガネが作成されていないかどうかを確認すると。

require 'spec_helper'
 feature "User can create new case" to
 background do
 @ user = FactoryGirl.create (: sysadmin_user)     @ user.make_current
 @plan  = FactoryGirl.create(:plan)
 @ account = FactoryGirl.create (: account, plan: @plan, user: @user)

 @trial = FactoryGirl.create trial (:trial, account: @account) 
 @ trial.make_current
 @ trial_phase = FactoryGirl.create (: trial_phase, trial: @trial)

 login (@ user.email, @ user.password)
end


scenario 'create new case' to
 Case.where puts ("created_by =?", @ user.id).count #returns 0
 fill_in 'case_subject_identifier', with 'MyNewTest'
 expect {click_button ('Create New Case')}.to change(Case,:count).by(1)
 Case.where puts ("created_by =?", @ user.id).count #returns 0
end

終わり

そして、これはコントローラです:

POST /cases を HTML として

def create`
@case = Case.where("subject_identifier = ? && trial_id = ?", params[:case]
[:subject_identifier], @current_trial.id).first
if @case || params[:case][:subject_identifier].blank?
respond_to :js
else`
params[:case][:subject_identifier]     
=sanitize_value(params[:case[:subject_identifier])    
if params[:case]
@case = Case.create(params[:case])``
if current_user.trial_member?(@current_trial, current_user)
@case.update_attributes(:location_id => current_user.default_location_id)
else
@case.update_attributes(:location_id => Location.find_by_name("None").id) 
end
@case.update_attributes(:trial_phase_id
=>TrialPhase.find_by_name("None").id,:access      
=> "None")
#redirect_to "/trial/#{@current_trial.id.to_s}/cases/#{@case.id.to_s}/case_view"
respond_to do |format|
format.js { render :js => %(window.location.pathname='#{'/trial
/'+@current_trial.id.to_s+'/cases/'+@case.id.to_s+'/case_view'}') }
end
end
end
4

0 に答える 0