在安装 Rspec 之前我们先产生一个 Rails 6的新专案到 Gemfile 可以看到其实在 test 里已经有这些 gem 了
group :test do
# Adds support for Capybara system testing and selenium driver
gem 'capybara', '>= 3.26'
gem 'selenium-webdriver'
# Easy installation and use of web drivers to run system tests with browsers
gem 'webdrivers'
end
其实 capybara 以及 selenium 已经有了 其实就能够进行 整合测试了但先不及我们先来安装 Rspec 吧!
gem 'rspec-rails', '~> 5.0', '>= 5.0.2'
并且 bundle install
再来产生出相关 rspec 档案
rails generate rspec:install
load ~/.spring.rb
Running via Spring preloader in process 76963
create .rspec
create spec
create spec/spec_helper.rb
create spec/rails_helper.rb
我们跟着 github 上的官方文件走过一遍吧!
# RSpec hooks into built-in generators
$ rails generate model user
invoke active_record
create db/migrate/20181017040312_create_users.rb
create app/models/user.rb
invoke rspec
create spec/models/user_spec.rb
# RSpec also provides its own spec file generators
$ rails generate rspec:model user
create spec/models/user_spec.rb
# List all RSpec generators
$ rails generate --help | grep rspec
基本上就是产生一个 User Model 和 User 的测试档
看官方文件有以下几种运作方式
# 预设: 跑所有spec资料夹底下的 *_spec.rb
$ bundle exec rspec
# 指定只跑 spec 底下的 models 资料夹
$ bundle exec rspec spec/models
# 指定只跑 spec/controllers底下的accounts_controller_spec.rb
$ bundle exec rspec spec/controllers/accounts_controller_spec.rb
# 指定只跑 spec/controllers底下的accounts_controller_spec.rb第八行的测试案例
$ bundle exec rspec spec/controllers/accounts_controller_spec.rb:8
# 查看指令
$ bundle exec rspec --help
那有时候会发现有些测试不是每次都正确这时候我会使用 repeat
来重复跑测试
跑10次 accounts_controller_spec.rb 这个测试
$ repeat 10 bundle exec rspec spec/controllers/accounts_controller_spec.rb
又或是想跑两个档案?
$ bundle exec rspec spec/controllers/accounts_controller_spec.rb spec/controllers/profiles_controller_spec.rb
明天我们就来写出我们的第一个测试档搂!
参考来源:
建立网路的其他写法 from tensorflow.keras.models import Sequ...
昨天我们拉完@IBOutlet了,现在要来说明如何让ImageView根据Slider的左右滑动而改...
谁是最棒的狗勾 tags: IT铁人 效能的定义 生活中很常对各种东西做出比较,哪本书比较好看、哪个...
在ActionBattle_Var.js修改成 接着开一支新程序叫ActionBattle_Spri...
今天来聊聊有关对话的第二个案例: 案例二:水涨船高的 Scrum Master 接班人 推动改革,很...