Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
rspec测试错误_Rspec_Terminal - Fatal编程技术网

rspec测试错误

rspec测试错误,rspec,terminal,Rspec,Terminal,好吧,就这么定了。复习Rails教程。我们正在运行一个测试环境,以确保我们希望显示在页面上的内容能够实现。使用pages\u controller\u spec.rb文件执行此操作。这是我们通过的三个论点之一: describe "GET 'home'" do it "returns http success" do get 'home' response.should be_success end it "should have the righ

好吧,就这么定了。复习Rails教程。我们正在运行一个测试环境,以确保我们希望显示在页面上的内容能够实现。使用pages\u controller\u spec.rb文件执行此操作。这是我们通过的三个论点之一:

describe "GET 'home'" do
    it "returns http success" do
      get 'home'
      response.should be_success
    end
    it "should have the right title" do
      get 'home'
      response.should has_selector("title", 
                  :content => "Ruby on Rails Tutorial Sample App | Home")
    end
所有三项测试都是相同的。当我从命令行运行rspec spec/时(我使用的是windows vista),我在所有三个测试中都会遇到此错误:

1) PagesController GET'home'应具有正确的标题 ←[31M故障/错误:←[0m←[31mresponse.应具有_选择器(“标题”,←[0m ←[31MN测量误差:←[0m ←[31MUN定义的方法
具有用于#←[0m
←[36m./spec/controllers/pages_controller_spec.rb:13:in
块(3层) 在'←[0m

正如您所见,我没有使用任何名为has_selector的东西,而是have_selector。这是从哪里来的?有人知道如何修复它吗?我已经重复检查了两天的代码,以确保我的示例与视频匹配,并且rspec检查的文本在实际网页上是相同的。我的意思是,见鬼,这些网页甚至在我启动服务器后都能正确显示。所以我完全没有任何线索。最近我得到的答案是在另一个论坛上,有人提到他们忘了在第一个“描述”之后的顶部附近包含“渲染视图”。我也仔细检查了这一点,然后我得到了它需要的位置。程序员很伤心


(编辑)在与其他人交谈后,他们说ruby似乎没有加载该方法。考虑到输出中关于“未定义方法”的行,这对我来说是有意义的我假设您的问题有输入错误,因为它确实说
应该有_选择器
。但是假设您的规范说
应该有_选择器
,您的问题是RSpec没有任何这样的匹配器

您可能正在查看一些示例代码,这些代码假定您正在使用webrat或之类的包。这些gem与rspec一起工作,以支持某些类型的测试,并且每个测试都附带一个
has_selector?
方法(哪个规范变成
应该有_selector

我推荐capybara;安装后,您可以执行以下操作(请注意,而不是:内容):


好主意。启动水豚并运行后,输出更改为:“1)PagesController GET‘home’应该有正确的标题←[31M故障/错误:←[0m←[31mresponse.应具有_选择器(“标题”,←[0m←[31M预期css“title”将返回某些内容←[0m←[36m./spec/controllers/pages_controller_spec.rb:13:in'block(3层)in'←[0m'仍然不确定为什么它说它需要css“标题”返回一些东西。我会继续乱搞代码。看看:文本的东西会发生什么。好吧,我受够了。回顾这个项目,我看到了很多不一致的地方。这就是我使用屏幕投影,然后通过更新的屏幕投影书试图找出错误的原因。(迈克尔·哈特尔)这次我就从这本书开始。很抱歉让你感到痛苦,浪费了你的时间。我本来应该这么做的。(即使我确实学到了很多额外的东西)
response.should have_selector("title", 
  :text => "Ruby on Rails Tutorial Sample App | Home")