#保证测试数据干净没有污染
gem 'database_cleaner', '~> 1.5.3'
gem 'rspec-rails', '~> 3.5'
#rails 5之后测试的时候把controller给分离出来了,需要单独引入这个gem
gem 'rails-controller-testing'
bundle之后,
运行rspec的初始化命令 rails g rspec:install
create .rspec # 修改一下 在文件中添加 可以在终端打印出每一个测试用例 -f d
create spec #
create spec/spec_helper.rb #为了保证测试数据的纯净,在文中添加代码
config.before(:suite) do
DatabaseCleaner.clean_with(:truncation)
end
config.before(:each) do
DatabaseCleaner.start
end
config.after(:each) do
DatabaseCleaner.clean
end
create spec/rails_helper.rb #
配置完成了。
所有的单元测试都需要放在spec的目录下面。
如果测试contrroller在spec的目录下新建一个controller就好了。
比如:users_controller_spec.rb
1 require 'rails_helper'
2
3 describe UsersController do
4
5 context "signup" do
6 it "should failed" do
7 post :create, params: { user: { email: '18866666@163.com' } }
8 expect(response).to render_template("new")
9 end
10
11 it "should success" do
12 post :create, params: { user:
13 {
14 email: '123@example.com',
15 password: '666666',
16 password_confirmation: '666666'
17 }
18 }
19 expect(response).to redirect_to(new_session_path)
20 end
21 end
22
23 end