Rails新建一个基于mysql和Rspec项目

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.现在有一个新需求>\color{red}{}
 \color{red}{主页内容为:『主页开发中,敬请期待...』}
 打开文件$ vi app/views/home/home.html.erb,将内容修改为:
 

主页开发中,敬请期待...


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
  1. 执行测试用例
    $ rails spec #此时会提示执行成功:『1 example, 0 failures』

你可能感兴趣的:(Rails新建一个基于mysql和Rspec项目)