édité: suivi des suggestions. Voir à la fin de la question.Test d'intégration: créer par rapport à nouveau dans le contrôleur
J'ai un contrôleur avec deux fonctions:
def new
if login_required
@discussion = Discussion.new
respond_to do |format|
format.html # new.html.erb
format.xml { render :xml => @discussion }
end
end
end
def create
if login_required
@discussion = Discussion.new(params[:discussion])
@discussion.update_attribute("user_id",session[:userid])
respond_to do |format|
if @discussion.save
flash[:notice] = 'Discussion was successfully created.'
format.html { redirect_to(@discussion) }
format.xml { render :xml => @discussion, :status => :created, :location => @Discussion }
else
format.html { render :action => "new" }
format.xml { render :xml => @discussion.errors, :status => :unprocessable_entity }
end
end
end
end
Maintenant, dans mon dossier de test d'intégration je:
test "test 1" do
post "https://stackoverflow.com/users/login",:user=> { :name => "bob", :password => "test_pass" }
post "/discussions/create", :discussion => { :title => "title 1", :body => "discussion body", :id => "101"} #Create 1
assert_response :success #Assert 1
get "/discussions/101"
assert_response :success #Assert 2
end
Cependant, je reçois un 302
sur Assertion 1.
Si je change "Créer 1" pour être: post "/ discussions/nouveau",: discussion => {: title => "titre 1",: corps => "corps de discussion",: id => "101"}
Je reçois une erreur 404.
1) Que se passe-t-il?
2) quels outils/options sont disponibles pour que je m'en aperçoive moi-même?
Merci
mise à jour
suggestion suivie (de Ryan Bigg):
- message: créer, {: discussion => {}}, {: user_id => utilisateurs (: bob) .id}
Résultat:
- rack de Lint :: LintError: variable d'env HTTP_USER_ID a une valeur non-chaîne 1976283457
toujours pas résolu.
merci, j'ai essayé vos suggestions, maintenant je reçois: rack de Lint :: LintError: variable d'env HTTP_USER_ID a une valeur non-chaîne 1976283457 – cbrulak
+1 pour remarquer before_filter –