1. 新建一个名为blog项目,设置数据库为mysql,跳过测试
$ rails new blog -d mysql --skip-test-unit #新建项目 $ cd blog #到blog项目目录 $ vi config/database.yml #根据mysql实际情况情况修改用户密码信息 $ rails db:create #创建数据库 $ rails s -b 0.0.0.0 -p 80 #启动项目,如果一切顺利,此时就 可访问blog应用了
2.引入Rspec,并配置
1.修改Gemfile,增加rspec-rails依赖,并安装 group :development, :test do gem 'rspec-rails' #增加rspec-rails依赖 . . . end 2.安装rspec $ rails generate rspec:install #安装rspec 3.修改spec/rails_helper.rb,在文件末尾找到如下片段并增加配置 RSpec.configure do |config| . . . config.include Capybara::DSL #增加这一行 end
3.生成一个简单的测试home页面,并执行测试
$ rails generate controller Home home --no-test-framework #不生成默认测试 $ rails generate integration_test home #home为自取的名称 $ bundle exec rspec [spec/requests/home.rb] #不指定文件执行所有测试,全部执行也可以用个($ rails spec),此时会提示错误
4.生成一个简单的测试home页面,并执行测试
1.现在有一个新需求>
打开文件$ vi app/views/home/home.html.erb
,将内容修改为:
<h1>主页开发中,敬请期待...</h1>
2.修改home页面相应的Rspec测试
打开文件$ vi spec/request/home_spec.rb
,将文件内容替换为:require 'rails_helper' RSpec.describe "主页", :type => :feature do #注意type为feature,也可以把文件从request文件移动到feature目录下,可以缺省type describe "主页的第一个测试用例" do it "主页必须包含:【开发中,敬请期待】" do visit '/home/home' # 访问home/home页面 expect(page).to have_content('开发中,敬请期待') #查看页面是否包含『开发中,敬请期待』字符串 end end end
- 执行测试用例
$ rails spec #此时会提示执行成功:『1 example, 0 failures』