J'ai une application Sinatra en utilisant la session, comment puis-je tester une page qui utilise la session?Test avec Rspec en utilisant session sinatra
I à l'aide Rspec + sinatra
TKS
J'ai une application Sinatra en utilisant la session, comment puis-je tester une page qui utilise la session?Test avec Rspec en utilisant session sinatra
I à l'aide Rspec + sinatra
TKS
même comme toutes les autres pages.
Vous devez clarifier votre question. Quel est le problème avec la session de test. En cas de problème est que l'utilisateur doit être connecté, vous pouvez utiliser quelque chose comme ceci dans le fichier spec:
before :each do
post "/login", {:username => "myuser", :password => "mypass"}
end
qui vous connecter avant chaque test.
Je ne pouvais le faire fonctionner qu'en désactivant les sessions pour l'environnement de test. Ce billet de blog a un bon exemple: http://benprew.posterous.com/testing-sessions-with-sinatra
la cible du lien est parti – froderik
Lien d'archive Internet: https://web.archive.org/web/20130418214800/http://benprew.posterous.com/testing-ses sions-avec-sinatra – ErikAGriffin
This page, spectacle est le principal problème de la séance d'essais avec rspec
et sinatra
.
Le problème principal est que la variable session
n'est pas accessible à partir du code de test. Pour le résoudre, il suggère (et je confirme) d'ajouter les lignes à spec/spec_helper.rb
au gibier à plumes:
def session
last_request.env['rack.session']
end
Il rendre accessible un objet de session moqué de la dernière demande au code de test.
Voici mon code du contrôleur qui a lu est un code
param et stocke sa valeur à session
:
post '/step2callback' do
session['code'] = params['code']
end
Ensuite, voici le code de test:
context "making an authentication" do
before do
post "/step2callback", code: "code_sample"
end
it "reads the param code and saves it at session" do
expect(session['code']).to eq("code_sample")
end
end
Je pense que vous devriez utiliser rack :: Test (ou quelque chose en plus de cela comme Capybara) pour tester le code conscient de la session – froderik