�G���^�[�v���C�Y�̈�ł̗̍p�������Ă���Ruby on Rails���g����Web�A�v���P�[�V��������邽�߂̓���A�ځB�ŐV�ł�4�ɑΉ����Ă��܂��B����́ARails�ŐU�镑���쓮�J�����s�����߂̃c�[���Ƃ���RSpec�����グ�A���\�z���@��A�X�y�b�N�A�T���v���iexample�j�A�t�b�N�A�G�N�X�y�N�e�[�V�����A�}�b�`���[�Ȃǂ̊�{�I�ȏ�������������܂��B
�@�O��́uRails�̃e���v���[�g�G���W��Slim�̏�������ActionView�̃w���p�[���\�b�h�A���C�A�E�g�̎g�����v�܂łŁARails�̊�{�I�Ȏg������MVC�ŕ������ĉ�����Ă��܂����B�����Rails�̃e�X�g�ɂ��ĉ�����܂��B
�@����@�\�����ɂ͂��낢��ȍ���������܂����A���Z��������₷���R�[�h�ɕς����Ƃ��A�A�v���P�[�V�����́u�U�镑���v�܂ŕς���Ă��܂��Ɩ�肠��ł��ˁB�����Ȃ�Ȃ����߂ɃA�v���P�[�V�����̐U�镑�������炩���ߒ�`���Ă����܂��B�����ăR�[�h��ς��邽�ђ�`�ʂ�ɓ����Ă��邩�`�F�b�N����A�o�O��s������点�����ł��B
�@Rails�ɂ́A���̂��߂̃c�[�������葽���̊J������Ńe�X�e�B���O�t���[�����[�N�Ƃ��Ďg���Ă��܂��B�܂��̓c�[�����g����悤�ɂ���Ƃ��납��Љ�܂��傤�B
�{�A�ڂ�Ruby on Rails 4�̓���A�ڂł��BRuby�ɂ��Ċw�т������͘A�ځu���G���W�j�A�^���S�҂̂��߂�Ruby 2.1�����v���������������B
�@Rails�ɂ͕W���̃e�X�g�t���[�����[�N�Ƃ��āuMiniTest�v������܂��BMiniTest��Ruby�̕W���Y�t���C�u�����ł�����̂ŁA���łɂȂ��݂̕������邩�Ǝv���܂��BMiniTest�̓A�v���P�[�V�������쐬�����ہA���[�g�f�B���N�g���Ɂutest�v�f�B���N�g�����쐬����Ă���A���̒��Ƀe�X�g��lj����Ă����܂��B
�@����ŁARails�̃e�X�g�t���[�����[�N�Ƃ��ăf�t�@�N�g�X�^���_�[�h�ƂȂ��Ă���̂��uRSpec�v�ł��BRSpec�́uBehaviour-Driven Development�i�ʏ�BDD�A�܂��̓r�w�C�r�A�i�U�镑���j�쓮�J���j�v�ƌĂ��\�t�g�E�F�A�J���A�v���[�`�̂��߂̃c�[���ł��B
�@�ubehaviour�v�Ƃ́u�U�镑���v���Ӗ����ABDD�̓v���O�������\������I�u�W�F�N�g��\�b�h�Ɋ��҂���U�镑�����u�T���v���iexample�j�v�Ƃ��ċL�q���ĊJ����i�߂Ă����܂��B
�@������̃e�X�g�t���[�����[�N�������ƒZ��������܂����A�h�L�������g��ߋ��̎��Y���L�x�Ȃ��ߊJ������ł�RSpec���g�����Ƃ������悤�ł��B�{�A�ڂł������RSpec�ɂ��ĉ�����܂��B
�@�܂��́ARSpec��Rails�A�v���P�[�V�����ɃC���X�g�[�����܂��傤�B
�@Gemfile�Ɉȉ��̃R�[�h��lj����܂��BGemfile���́ugroup�v���\�b�h���u���b�N�Œ�`����gem���A�����̊��ɂ̂݃C���X�g�[�����܂��B
group :development, :test do gem 'rspec-rails', '~> 3.0.0' end
�@�����āA���̃R�}���h�ŃC���X�g�[���Ə��������s���܂��B�K�v�ɉ����āubundle exec�v��t���Ď��s���Ă��������B
$ bundle install $ rails g rspec:install
�@����ɂ��udevelopment�v�Ɓutest�v����RSpec���C���X�g�[������܂����B
�@�A�v���P�[�V�����̃��[�g�f�B���N�g���ɃR�}���h�̐ݒ�t�@�C���́u.rspec�v�Ɓuspec�v�f�B���N�g���A�uspec�v�f�B���N�g���ȉ��ɐݒ�t�@�C���́uspec_helper.rb�v�Ɓurails_helper.rb�v����������Ă��܂��B
�@�܂��A�ŏ����炠����MiniTest�́utest�v�f�B���N�g���͎g�����Ƃ��Ȃ��̂ō폜�ł��܂��B
�@�����ňȉ��Ɏ����u.rspec�v�̑�ʂ̌x�����o���u--warning�v�I�v�V�������ЂƂ܂��폜���Ă����܂��B�u--color�v�I�v�V������RSpec���s���̃��O��F�t�����A�u--require�v�I�v�V������RSpec���s�O�ɓ���̃t�@�C����ǂݍ���ł���܂��B
--color --warning --require spec_helper
�@���Ɂutest�v���̃f�[�^�x�[�X�����L�̃R�}���h�ō\�z���܂��B
$ rake db:test:prepare
�@�����RSpec�Ńe�X�g�����s���鏀���͐����܂����B
�@�{���ł���v���W�F�N�g�̏����ɂ����܂ł̏��������Ă����܂��B�Ȃ����ƌ����ƁA���f����R���g���[���[���urails generate�v�R�}���h�Ő��������ۂɁuspec�v�f�B���N�g���ȉ��Ɂumodels�v��ucontrollers�v�̃f�B���N�g���Ƌ��ɂ����̐U�镑�����L�q����t�@�C�������Ă���邩��ł��B
�@�����ɁA���̃R�}���h�ŐV�������f�����쐬���Ă݂܂��傤�B
$ rails g model borrowing user:references book:references due_back:date invoke active_record create db/migrate/xxxxxxxxxxxxxx_create_borrowings.rb create app/models/borrowing.rb invoke rspec create spec/models/borrowing_spec.rb
�@�}�C�O���[�V�����t�@�C���ƃ��f���̃\�[�X�Ƌ��Ɂuspec/models/borrowing_spec.rb�v�Ƃ����ȉ��̃t�@�C������������Ă��܂��B
require 'rails_helper' RSpec.describe Borrowing, :type => :model do pending "add some examples to (or delete) #{__FILE__}" end
�@����́uBorrowing�v���f���̐U�镑�����L�q����t�@�C���ŁA��ʂɁu�X�y�b�N�ispec�j�v�ƌĂ�܂��BRSpec�����s����ƁA���̃X�y�b�N����������A�A�v���P�[�V�����̊e�v�f����`����Ă���U�镑���ɏ]�����`�F�b�N����܂��B
�@�������s�������Ƃ���ł����A�lj������}�C�O���[�V�������utest�v���̃f�[�^�x�[�X�ɔ��f����K�v������܂��B���Ȃ��݂́urake db:migrate�v�R�}���h�Ɏ��̂悤�Ɋ����w�肷��I�v�V������t���Ď��s���܂��B
$ rake db:migrate RAILS_ENV=test
�@����ł́A���̃R�}���h��RSpec�����s���Ă݂܂��傤�B����̃R���|�[�l���g�A�t�@�C���������s����ꍇ�͈����Ŏw�肵�܂��B
$ rspec $ rspec spec/models $ rspec spec/models/borrowing_spec.rb
�@�����_�ł́A���̂悤�Ȏ��s���ʂ��o�͂���Ă���Ǝv���܂��B
* Pending: Borrowing add some examples to (or delete) /xxx/xxx/xxx/rails4_application_development_guide_sample/08/book_library/spec/models/borrowing_spec.rb # Not yet implemented # ./spec/models/borrowing_spec.rb:4 Finished in 0.00036 seconds (files took 1.64 seconds to load) 1 example, 0 failures, 1 pending
�@RSpec�ł͒�`����Ă���U�镑���̈����u�T���v���iexample�j�v�ƌĂт܂��BRSpec�̏o�͂́A�܂��T���v���������ł���u.�v�A���s�ł���uF�v�A�ۗ��ł���u*�v���o�͂��܂��B���̎��ɁA�e�T���v���̏ڍׂȃ��|�[�g�A�Ō�Ɏ��s���ԂƑS�T���v�����A���s�����T���v�����A�ۗ������T���v�������o�͂��܂��B
Copyright © ITmedia, Inc. All Rights Reserved.