Ruby之Rspec的报错解决
Posted gcczhongduan
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Ruby之Rspec的报错解决相关的知识,希望对你有一定的参考价值。
#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的报错解决的主要内容,如果未能解决你的问题,请参考以下文章
Circle CI 上的 Rspec 测试失败(Ruby on Rails 5.2.3)