Un mémorandum lors du développement d'une application avec RubyonRails puis de son utilisation pour une autre application (Mac à partir du 21 octobre 2020)
Il m'a fallu beaucoup de temps pour commencer, alors essayez-le si vous voulez en avoir une idée.
Gemfile
group :test do
gem 'capybara', '>= 2.15'
gem 'rspec-rails'
gem "factory_bot_rails"
gem 'faker'
end
Terminal
bundle install
rspec-rails Gemme pour exécuter Rspec Framework de test Ruby on Rails RSpec Prise en main https://qiita.com/tatsurou313/items/c923338d2e3c07dfd9ee
capybara Comme Rspec ne fonctionnait pas sans configurer le pilote, le Gem introduit Aide-mémoire Capybara https://qiita.com/morrr/items/0e24251c049180218db4
faker Gemme pour créer des données. Principalement, l'écran lors de l'exécution de Rspec peut être créé aléatoirement à l'aide de la bibliothèque de Gem pour les données de test du test d'entrée. Vous pouvez également saisir des données temporaires dans le fichier de départ, ce qui est pratique. J'ai essayé d'utiliser Faker! (Exemple d'utilisation et d'exécution) https://qiita.com/ginokinh/items/3f825326841dad6bd11e
factory_bot_rails Je l'ai utilisé pour Gem, qui peut d'abord créer des données de test, principalement pour le débogage du modèle. [Rails] Remarques sur l'utilisation de factory_bot https://qiita.com/at-946/items/aaff42e4a9c2e4dd58ed
Terminal
rails generate rspec:install
Les fichiers suivants seront créés lors de l'installation.
Terminal
Running via Spring preloader in process 9045
create .rspec
create spec
create spec/spec_helper.rb
create spec/rails_helper.rb
Je ne comprends pas comment cela fonctionne, et probablement grâce aux paramètres ici, je peux exécuter le programme dans le même environnement que le navigateur.
spec_helper.rb
require 'capybara/rspec'
RSpec.configure do |config|
config.before(:each, type: :system) do
#driven_by :selenium_chrome_headless
driven_by :rack_test
end
end
Vous pouvez créer des données à créer dans le dossier usines, tester le modèle pour validation, etc., et tester le fonctionnement réel à l'écran avec sysyem. Le code est décrit pour référence
factories/users_spec.rb
FactoryBot.define do
factory :user do
email { Faker::Internet.email }
password { 'password' }
password_confirmation { 'password' }
end
end
model/user_spec.rb
require 'rails_helper'
RSpec.describe 'Test du modèle utilisateur', type: :model do
before do
@user = build(:user)
end
describe 'Validation' do
it 'NG si l'email est vide' do
@user.email = ''
expect(@user.valid?).to eq(false)
end
end
end
system/user_spec.rb
require 'rails_helper'
describe 'Test d'authentification de l'utilisateur' do
describe 'Enregistrement d'un nouvel utilisateur' do
before do
visit new_user_registration_path
end
context 'Transition vers un nouvel écran d'inscription' do
it 'Nouvelle inscription réussie' do
fill_in 'user[email]', with: Faker::Internet.email
fill_in 'user[password]', with: 'password'
fill_in 'user[password_confirmation]', with: 'password'
click_button "sign in" #Le caractère affiché sur le bouton
expect(page).to have_content 'successful' #Veuillez spécifier le message qui sera affiché après la connexion
end
end
end
end
Tous les tests du dossier spec sont exécutés par la commande suivante, et les tests réussis sont affichés en vert et ceux qui n'ont pas réussi sont affichés en rouge sur le terminal.
Terminal
bundle exec rspec spec/ --format documentation
Je vous remercie pour votre travail acharné.
Recommended Posts