せっかくなのでRails5でRspecした!
http://shinofara.hateblo.jp/entry/2016/03/16/014844
の続き
はじめてのbundler
$ gem install bundler $ bundle install --path vendor/bundle
spec/ dirをつくる
$ rails generate rspec:install
Running via Spring preloader in process 40013
create .rspec
create spec
create spec/spec_helper.rb
create spec/rails_helper.rb
試しに実行
$ bundle exec rspec
No examples found.
Finished in 0.00022 seconds (files took 0.06497 seconds to load)
0 examples, 0 failures
テスト無いから当然やけど!
試しにモデルを作って、テストしてみよーっ
rails generate model user
Running via Spring preloader in process 40126
invoke active_record
create db/migrate/20160316141612_create_users.rb
create app/models/user.rb
invoke rspec
create spec/models/user_spec.rb
かってにusersにしてくれる可愛いやつ
$ bundle exec rspec /path/to/schema.rb doesn't exist yet. Run `rails db:migrate` to create it, then try again..........
怒られたし
ファイル無いから作れ
はい
$ rails db:migrate == 20160316141612 CreateUsers: migrating ====================================== -- create_table(:users) -> 0.0010s == 20160316141612 CreateUsers: migrated (0.0011s) =============================
users tableが出来たようだ!
どこに?
$ cat config/database.yml
を見る限り db/development.sqlite3 にあるようだ
defaultはとりあえずSqlLiteなのね。
はい勧めます。
$ bundle exec rspec
ending: (Failures listed here are expected and do not affect your suite's status)
1) User add some examples to (or delete) /path/to/<APPNAME>/spec/models/user_spec.rb
# Not yet implemented
# ./spec/models/user_spec.rb:4
inished in 0.00042 seconds (files took 2.35 seconds to load)
example, 0 failures, 1 pending
まだテストの中身ないからペンディング....
失敗するように書き換えてみた。
https://github.com/shinofara/sample-rail5/pull/1/commits/f4fd4d1865556cfefdde75aac5be1ce61746eb49
こんな感じ
$ bundle exec rspec
F
Failures:
1) User 作成できるか
Failure/Error: expect(u).to be_valid
NoMethodError:
undefined method `valid?' for nil:NilClass
# ./spec/models/user_spec.rb:7:in `block (2 levels) in <top (required)>'
Finished in 0.00096 seconds (files took 1.1 seconds to load)
1 example, 1 failure
Failed examples:
rspec ./spec/models/user_spec.rb:5 # User 作成できるか
失敗
じゃ、最後は
https://github.com/shinofara/sample-rail5/pull/1/commits/fb0035b4e71dbfe6371b4215e1940f0b0728e5d6
こんな感じに書き換えて
$ bundle exec rspec
.
Finished in 0.00318 seconds (files took 1.1 seconds to load)
1 example, 0 failures
Greeeeeeeen とりあえずRspec動かす編終了
前回との差分 https://github.com/shinofara/sample-rail5/pull/1/files