相應(yīng)的step文件需要做相應(yīng)的修改:
	復(fù)制代碼
	1require File.join(File.dirname(__FILE__), "google-page")
	2
	3Given /^I amongoogle home page$/do
	4@page = GooglePage.new
	5end
	6
	7When/^I searchfor'([^"]*)'$/ do |search_text|
	8@page.search search_text
	9end
	10
	11Then /^I should be able to view the search result of '([^"]*)'$/do|result_text|
	12@page.has_text result_text
	13end
復(fù)制代碼
運(yùn)行cucumber,一個新的瀏覽器被打開,顯示結(jié)果與(三)中相同。
(六)加入角色用戶
	   既然是行為驅(qū)動,既然是模擬用戶實際操作,那么直接對Page對象進(jìn)行操作也顯得不夠了,于是我們引入了角色用戶User對象,對于擁有多種用戶角色的網(wǎng)站來說特別實用。加入User對象之后,step文件中不再出現(xiàn)對Page對象的直接引用,而是在User對象的行為方法中進(jìn)行引用,定義User對象如下(user.rb):
	復(fù)制代碼
	1require File.join(File.dirname(__FILE__), "google-page")
	2
	3class User
	4def initialize
	5@browser = Watir::Browser.new :chrome
	6end
	7
	8def visit_google
	9@page = GooglePage.new(@browser)
	10end
	11
	12def search_text text
	13@page.search text
	14end
	15
	16def assert_text_exist text
	17@page.has_text text
	18end
復(fù)制代碼
	   feature文件保持不變,在step文件用User代替Page:
	復(fù)制代碼
	1require File.join(File.dirname(__FILE__), "user")
	2
	3Given /^I amongoogle home page$/do
	4@user = User.new
	5@user.visit_google
	6end
	7
	8When/^I searchfor'([^"]*)'$/ do |search_text|
	9@user.search_text search_text
	10end
	11
	12Then /^I should be able to view the search result of '([^"]*)'$/do|result_text|
	13@user.assert_text_exist result_text
	14end