RSpec安装

(1)Gemfile中加入,如下Gem包:

            rspec-rails

            factory_girl_rails

            faker

            capybara

            database_cleaner

            launchy

            selenium-webdriver

rspec-rails和factory_girl_rails在测试组和开发组都需要,开发需要这两个gem包用于rails g 命令生成代码。

(2)配置好测试库database.yml,执行bundle exec rake db:create:all

(3)bundle exec rails generate rspec:install 生成RSpec配置文件(.rspec),用来存放测试文件的文件夹(spec),以及一个存储帮助函数的文件(spec/spec_helper.rb),可以在这个帮助函数文件中定制如何和程序代码交互。

可以在.rspec中加入 --format documentation,将rspec跑的结果已文档形式展示

(4)为了使用scaffold不再生成Test::Unit测试文件,而生成rspec测试文件,可以在config/application.rb文件,Application类中加入:

config.generators do |g|
    g.test_framework :rspec,
        fixtures: true,
        view_specs: false,
        helper_specs: false,
        routing_specs: false,
        controller_specs: true,
        request_specs: false
    g.fixture_replacement :factory_girl, dir: "spec/factories"
end

g.test_framework接受了很长一串参数,第一个参数指定了使用的测试框架为rspec,后面的参数分别对应的是

    fixtures 为各模块申城测试固件

    view_specs 是否生成“视图测试”

    helper_specs 是否生成帮助方法测试

    routing_specs 是否生成routes.rb测试文件

    controller_specs、request_specs都是对应测试

   g.fixture_replacement :factory_girl, dir: "spec/factories" 告诉rails使用factory_girl生成与构建代码固件,并放在spec/factories文件夹中 

(5)rake db:test:clone 将develop数据库结构克隆到test库

注意:一般不生成视图测试,由于编写可靠地试图测试是很困难的事,且不好维护,UI相关的测试Rials开发者都倾向于用继承测试实现


你可能感兴趣的:(测试,TDD,Ruby,rspec,集成测试)