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
  • 相关阅读:
    史上最全分布式数据库概述
    MySQL高可用实现:主从结构下ProxySQL中的读写分离
    【CS231n】斯坦福大学李飞飞视觉识别课程笔记(十七):神经网络笔记3(下)
    【CS231n】斯坦福大学李飞飞视觉识别课程笔记(十六):神经网络笔记3(上)
    20万DBA都在关注的11个问题
    记一次服务器执行MySQL耗时问题
    Python爬虫入门教程 66-100 对微博登录好奇嘛,用Python试试
    挥手洒衰泪
    长戟如霜大旆红
    我的博客即将入驻“云栖社区”,诚邀技术同仁一同入驻。
  • 原文地址:https://www.cnblogs.com/simonshi2012/p/2160695.html
Copyright © 2011-2022 走看看