码迷,mamicode.com
首页 > 其他好文 > 详细

Ruby之Rspec的报错解决

时间:2016-03-22 13:53:22      阅读:226      评论:0      收藏:0      [点我收藏+]

标签:

#enconding:utf-8

require 'selenium-webdriver'
require 'rspec'

describe "baidu main page" do
	it "should have 百度一下 button on the baidu main page"do
		dr = Selenium::WebDriver.for:ie
		url = 'www.baidu.com'
		dr.get url
		dr.find_element(:id,'su').should be_displayed
	end #it
end #describe

错误代码如上所看到的,首先使用utf-8编码,例如以下

#enconding:utf-8

在rspec中运行会出现中文无法解释的错误

技术分享

显然,当前utf-8还不支持中文的正常运行。将utf-8改为gbk就可以成功运行。这是第一个遇到的问题。

第二个问题就是断言。

dr.find_element(:id,'su').should be_displayed

should方法的断言似乎已经过时了。在运行rspec -f doc的时候会出现语法错误的提示。要求改动断言的语法

技术分享

将断言的代码改动为以下的表达:

expect(dr.find_element(:id,'su')).to be_displayed


</pre><pre>

断言的新语法格式參见下所看到的:expect(dr.find_element(:id,'su')).to be_displayed
对照之前的should语法: dr.find_element(:id,'su').should be_displayed

正常运行的代码例如以下所看到的:

#encoding:gbk
#使用GBK才干正常显示,不报错,使用UTF-8会报错

require 'selenium-webdriver'
require 'rspec'

describe "baidu main page" do
	it "should have 百度一下 button on the baidu main page"do
		dr = Selenium::WebDriver.for:ie
		url = 'www.baidu.com'
		dr.get url
		#~ dr.find_element(:id,'su').should be_displayed
		expect(dr.find_element(:id,'su')).to be_displayed#新的语法
	end #it
end #describe


将编码和断言的方法改为上述表达式就可以成功运行。

运行结果例如以下图所看到的:

技术分享

Ruby之Rspec的报错解决

标签:

原文地址:http://www.cnblogs.com/gcczhongduan/p/5305978.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!