zoukankan      html  css  js  c++  java
  • rails 3 使用 cucumber 和rspec 進行 測試

    rails3使用cucumber和rspec进行测试

     
    rails new blog -d mysql -T

    group :development:test do
        gem 'cucumber'"~> 0.10.2"
        gem 'rspec'"~> 2.4" 
        gem 'rspec-rails''~> 2.5'
        gem 'cucumber-rails''~> 0.4.1'
        gem 'capybara''~> 0.4.1.2'
        gem 'database_cleaner''~> 0.6.6'
    end

    depot$rails generate rspec:install
    depot$rails generate cucumber:install


    bash

    rails blog
    sudo rake gems:install RAILS_ENV=test
    script/generate cucumber
    cucumber features -n
    script/generate rspec_model article title:string content:text
    rake db:migrate
    rake db:test:clone
    script/generate rspec_controller articles index

    Cucumber

    Feature: Manage Articles
      In order to make a blog
      As an author
      I want to create and manage articles
      
      Scenario: Articles List
        Given I have articles titled Pizza, Breadsticks
        When I go to the list of articles
        Then I should see "Pizza"
        And I should see "Breadsticks"
      
      Scenario: Create Valid Article
        Given I have no articles
        And I am on the list of articles
        When I follow "New Article"
        And I fill in "Title" with "Spuds"
        And I fill in "Content" with "Delicious potato wedges!"
        And I press "Create"
        Then I should see "New article created."
        And I should see "Spuds"
        And I should see "Delicious potato wedges!"
        And I should have 1 article

    config/environments/test.rb

    config.gem "rspec":lib => false:version => ">=1.2.2"
    config.gem "rspec-rails":lib => false:version => ">=1.2.2"
    config.gem "webrat":lib => false:version => ">=0.4.3"
    config.gem "cucumber":lib => false:version => ">=0.2.2"

    features/step_definitions/article_steps.rb

    Given /^I have articles titled (.+)$/ do |titles|
      titles.split(', ').each do |title|
        Article.create!(:title => title)
      end
    end

    Given /^I have no articles$/ do
      Article.delete_all
    end

    Then /^I should have ([0-9]+) articles?$/ do |count|
      Article.count.should == count.to_i
    end

    articles_controller.rb

    def index
      @articles = Article.all
    end

    def new
      @article = Article.new
    end

    def create
      @article = Article.create!(params[:article])
      flash[:notice] = "New article created."
      redirect_to articles_path
    end

    features/support/paths.rb

    def path_to(page_name)
      case page_name
      
      when /the homepage/
        root_path
      when /the list of articles/
        articles_path
      
      # Add more page name => path mappings here
      
      else
        raise "Can't find mapping from \"#{page_name}\" to a path."
      end
    end

    index.html.erb

    <%= flash[:notice] %>
    <% for article in @articles %>
      <p><%=h article.title %></p>
      <p><%=h article.content %></p>
    <% end %>
    <p><%= link_to "New Article", new_article_path %></p>

    http://www.sevenmike.com/2011/06/20/rails3%E4%BD%BF%E7%94%A8cucumber%E5%92%8Crspec%E8%BF%9B%E8%A1%8C%E6%B5%8B%E8%AF%95/

    摘自: 

  • 相关阅读:
    使用parted对大于2T的磁盘进行分区
    iso系统镜像刻录到光盘和U盘
    戴尔R710服务器安装系统——配置raid
    UltraISO 9.7.1.3519注册码
    H3C交换机配置vlan
    kvm创建新虚拟机
    Windows添加永久静态路由
    gitlab部署步骤+汉化
    php配置php_pdo_mysql模块
    为git服务器配置gitosis管理权限
  • 原文地址:https://www.cnblogs.com/ToDoToTry/p/2221439.html
Copyright © 2011-2022 走看看