[每周软件]:Cucumber:Cucumber in Rails

简介

OSChina 的链接 Cucumber

ruby 的 BDD框架,类似自然语言的DSL,适用于BDD模式和验收测试。

Book

The Rspec Book

The Cucumber Book

本系列所有内容取自The Rspec Book 虽标记原创 但其实我只是翻译总结了一下

Ready

Gemfile:


group :test do
    gem 'rspec-rails'
    gem 'cucumber-rails'
    #下面这俩都是验收测试用的 模拟浏览器操作 没有太大区别 自己选用吧
    gem 'capybara'
    #gem 'webrat'
    gem 'factory_girl_rails' #假数据生成
    gem 'database_cleaner' #运行之后清空数据库
end

Install


    $rails g cucumber:install

Visit Home Page

features/home_pages.feature

 
    #language: zh-CN
    功能: 未登录用户的访问
      作为一个未登录用户
      不登录的访问
      应该访问到首页或者固定页面

      场景大纲: 访问基本界面
        假如 我访问 "<page>"
        那么 我应该看到 "<content>"

      例子:
        |page     |content      |
        |/home     |My Home Page |
        |/about   |My About Page|
        |/something|My Home Page |

features/step_definitions/home_step.rb

 
    #encoding: utf-8
    Before do #这里是使用fixtures数据的方法,使用factory_girl也很简单 fixtures有点不一样 就没用factory_girl
      ActiveRecord::Fixtures.reset_cache
      fixtures_folder = File.join(Rails.root, 'spec', 'fixtures')
      fixtures = Dir[File.join(fixtures_folder, '*.yml')].map {|f| File.basename(f,
      ActiveRecord::Fixtures.create_fixtures(fixtures_folder, fixtures)
    end

    假如 /^我访问 "(.*?)"$/ do |arg1|
      puts "link:#{arg1}"
      visit arg1
    end

    那么 /^我应该看到 "(.*?)"$/ do |arg1|
      page.should have_content(arg1)
    end

visit page 等方法来自capybara,具体使用方法需要参考capybara

spec/fixtures/pages.yml

     
        one:
          link: home
          title: 首页
          content: My Home Page
          page:
          level: 0

        two:
          link: about
          title: 关于
          content: My About Page
          page:
          level: 1

运行:$rake cucumber

在Rails中使用Cucumber并没有太大区别,主要是结合假数据生成,webrat等方法的一起使用。

To Be Continued

Cucumber 源码查看(一)

Cucumber 源码查看(二)

Cucumber 总结

你可能感兴趣的:([每周软件]:Cucumber:Cucumber in Rails)