zoukankan      html  css  js  c++  java
  • FrankCucumber Step Definition compendium (转载)

    What's this?

    This page is intended to act as a place for useful Frank step definitions which aren't quite standard enough to add to the core frank steps. Please feel free to contribute your own useful codez.

    Counting specific items displayed on the App

    This works for Waseem:

    Then /^I should see (.*) apples$/ do |count|
      apples = frankly_map( "label marked:'red apples'", 'tag' )
      apples.count.should == count.to_i
    end
    

    Editing a text field using the keyboard

    (see this thread for details)

    This works for Pete's team:

        When /^I use the keyboard to fill in the textfield marked "([^\\"]*)" with "([^\\"]*)"$/ do |text_field_mark, text_to_type|
          text_field_selector =  "view marked:'#{text_field_mark}'"
          check_element_exists( text_field_selector )
          touch( text_field_selector )
          frankly_map( text_field_selector, 'setText:', text_to_type )
          frankly_map( text_field_selector, 'endEditing:', true )
        end
    

    This works for Martin:

        When /^I use the keyboard to fill in the textfield marked "([^\\"]*)" with "([^\\"]*)"$/ do |text_field_mark, text_to_type| 
         text_field_selector =  "view marked:'#{text_field_mark}'" 
         check_element_exists( text_field_selector ) 
         frankly_map( text_field_selector, 'becomeFirstResponder' ) 
         frankly_map( text_field_selector, 'setText:', text_to_type ) 
         frankly_map( text_field_selector, 'endEditing:', true ) 
        end 
    

    Simulating sending text and hitting return on the keyboard

    This can be a useful workaround when dealing with the iOS keyboard. Thanks to Hezi Cohen and James Moore for this one!

    def send_command ( command )
      %x{osascript<<APPLESCRIPT
    tell application "System Events"
      tell application "iPhone Simulator" to activate
      keystroke "#{command}"
      delay 1
      key code 36
    end tell
    APPLESCRIPT}
    end
    
    When /^I send the command "([^\\"]*)"$/ do |cmd|
      send_command(cmd)
    end
    
    When /^I send the command "([^"]*)" (\d+) times$/ do |cmd, times|
      i = 0
      while i < times.to_i
        send_command(cmd)
        i += 1
      end
    end
    
    When /^I send the following commands:$/ do |table|
      table.hashes.each do |row|
        steps "When I send the command \\"#{row['command']}\\" #{row['times']} times"
        send_command(row['command'])
      end
    end
    

    Resetting the app to first launch state

    Given /^I reset the (iphone|ipad) app$/ do |device|
      steps "When I quit the simulator"
      SDK    = "4.3"
      APPLICATIONS_DIR = "/Users/#{ENV['USER']}/Library/Application Support/iPhone Simulator/#{SDK}/Applications"
      USERDEFAULTS_PLIST = "Library/Preferences/com.yourcompany.#{APPNAME}.dist.plist"
      Dir.foreach(APPLICATIONS_DIR) do |item|
        next if item == '.' or item == '..'
        if File::exists?( "#{APPLICATIONS_DIR}/#{item}/#{USERDEFAULTS_PLIST}")
          FileUtils.rm "#{APPLICATIONS_DIR}/#{item}/#{USERDEFAULTS_PLIST}" 
        end
      end
      steps "Given I launch the #{device} app"
    end
    

    Taking a screenshot of the app

    Then /^I save a screenshot with prefix (\w+)$/ do |prefix|
     filename = prefix + Time.now.to_i.to_s
     %x[screencapture #{filename}.png]
    end
    

    Deleting a table view cell

    (see this thread for details)

    When /^I delete the table view cell marked "([^"]*)"$/ do |mark|
      raise "no table view cell marked '#{mark}' could be found to delete" unless element_exists("tableViewCell label marked:'#{mark}'")
      frankly_map( "tableViewCell label marked:'#{mark}' parent tableViewCell delete", "tag" ) 
    end
    

    Selecting from a UIPickerView

    From http://groups.google.com/group/frank-discuss/browse_thread/thread/419a5f08d7ebb422

    When /^I select (\d*)(?:st|nd|rd|th)? row in picker "([^\"]*)"$/ do | 
    row_ordinal, theview| 
      selector = "view:'UIPickerView' marked:'#{theview}'" 
      row_index = row_ordinal.to_i - 1
      views_switched = frankly_map( selector, 'selectRow:inComponent:animated:', row_index, 0, false ) 
      raise "could not find anything matching [#{row_ordinal}] to switch" if views_switched.empty? 
    end 
    

    转自:https://github.com/moredip/Frank/wiki/Step-Definition-compendium
  • 相关阅读:
    后台管理、编辑器上传图片、修改用户头像、bbs小总结
    侧边栏制作成inclusion_tag、文章的点赞点踩、文章的评论
    登陆功能、bbs首页搭建、admin后台管理、首页文章展示、用户头像展示、图片防盗链、个人站点页面搭建、侧边栏展示功能、侧边栏筛选功能、将侧边栏制作成inclusion_tag
    表创建及同步、注册功能、登陆功能、搭建bbs首页
    毕设进度7
    毕设进度6
    毕设进度5
    毕设进度4
    毕设进度3
    学习进度2
  • 原文地址:https://www.cnblogs.com/simonshi2012/p/2160695.html
Copyright © 2011-2022 走看看