Rails测试
Rails测试
参考
使用cucumber编写用户故事 | cucumber-rails | RSpec驱动API测试框架-airborne | Capybara模拟真实用户交互 | 自动化测试工具Selenium WebDriver 和我一起学 Selenium WebDriver(1)——入门篇 | 测试匹配插件shoulda-matchers | Ruby On Rails 集成测试
Rspec
- [rspec-core]
- [rspec-expectations]
- [rspec-mocks]
- [rspec-rails]
RSpec on Rails 101
测试的分类
简单分成“单元测试”、“整合测试”以及“验收测试”。
RSpec基础
- describe / it / expect 角色区别
- context 使用方法
- before 使用方法
- let / let! / subject 使用方法
- pending 和 skip 区别
describe “描述”一组测试,用 it 来写一个测试。it内的expect则是用来检查“左值”是否与“右值”相等:expect(“左值”).to eq(“右值”)。所以,describe里可以有多个it,it里可以有多个期望语句。每个测试都是由RSpec.describe描述要测试的类别Class、模块Module。describe可以嵌套使用,比如用来描述类别内的不同的方法。 每个方法内有if-else,不同的情况,可以用context来区分。
Gem包支持
gem 'factory_girl_rails'
gem 'factory_girl-seeds'
gem 'faker'
# 测试
gem 'rspec-rails', '~> 3.5'
gem 'airborne'
gem 'database_cleaner
步骤
rails g rspec:request api/v1/[name] --request-specs