Cette fois, j'écrirai la procédure d'introduction de Rspec lors de l'écriture du code de test au lieu d'un mémorandum.
Présentez 3 types de gemmes utilisées dans le test.
Décrivez dans le processus de groupe: développement,: test do ~ end
.
Gemfile
group :development, :test do
# Call 'byebug' anywhere in the code to stop execution and get a debugger console
gem 'byebug', platforms: [:mri, :mingw, :x64_mingw]
gem 'rspec-rails
gem 'factory_bot_rails'
gem 'faker'
end
Après avoir écrit, faites bundle install
et redémarrez le serveur local.
Terminal
% rails g rspec:install
.rspec
--require spec_helper
--format documentation # =>Postscript
Définissez si vous souhaitez que le message d'erreur de test s'affiche en anglais.
RSpec.configure do |config|
Ajouté ci-dessus.
spec/rails_helper.rb
#Omission
I18n.locale = "en"
RSpec.configure do |config|
#Omission
--Créez un répertoire usines
dans le répertoire spec.
spec/factories/users.rb
FactoryBot.define do
factory :user do
name {Faker::Name}
email {Faker::Internet.free_email}
password = Faker::Internet.password(min_length: 6)
password {password}
password_confirmation {password}
end
end
Terminal (console)
pry(main)> FactoryBot.create(:user)
spring stop
pour arrêter Spring.
--Si vous voyez Printemps arrêté.
, Spring a été arrêté normalement.
--Et puis tapez à nouveau FactoryBot.create (: user)
sur la console pour vérifier la génération.
#Quittez la console avec exit
% spring stop
spec / models / user_spec.rb
.Terminal
% rails g rspec:model user
J'écrirai de plus en plus du code de test comme celui-ci.
spec/models/user_spec.rb
require 'rails_helper'
RSpec.describe User, type: :model do
pending "add some examples to (or delete) #{__FILE__}"# =>La description d'origine est supprimée
describe 'Enregistrement d'un nouvel utilisateur' do
before do
@user = FactoryBot.build(:user)
end
it "name, email, password, password_Si toutes les confirmations sont saisies, elles seront enregistrées" do
expect(@user).to be_valid
end
end
end
Exécutez le code suivant.
Terminal
% bundle exec rspec spec/models/user_spec.rb
https://rubydoc.info/gems/faker/1.3.0/frames http://railscasts.com/episodes/126-populating-a-database https://github.com/takeyuweb/trygems/blob/master/try-faker/faker.md
Faker::Japanese https://github.com/tily/ruby-faker-japanese
Recommended Posts