相关疑难解决方法(0)

RSpec用于路由和测试路由.具体而言

我正在尝试为我的服装路线和非现有路线编写测试.

对于这里的例子我有两个问题:

  1. 它匹配我的控制器上不存在的操作,因此它与我的控制器是否具有这些操作并不匹配,它只是匹配语法
  2. should_not be_routable不工作,哪一种又回到了它上面的问题不检查对我的控制器或routes.rb文件,看是否路径应该存在.

这个通过并且一切都很好:

it "should route to method1" do
   { :get => '/my_controller/method1' }.should route_to(:controller => 'my_controller',
                                                     :action => 'method1')
end
Run Code Online (Sandbox Code Playgroud)

这个失败了,所以它甚至没有检查我的控制器或路由文件中是否有一个方法zz.

it "should not route to zz" do
  { :get => '/my_controller/zz' }.should_not be_routable 
end
Run Code Online (Sandbox Code Playgroud)

我得到的错误是:

MyController routing zz should route to rescan
     Failure/Error: { :get => '/my_controller/zz' }.should_not be_routable
       expected {:get=>"/client_rescan/zz"} not to be routable, but it routes to {:controller=>"my_controller", :action=>"zz"}
Run Code Online (Sandbox Code Playgroud)

所以它显然根本不看我的路线文件......

这是另一个例子,它没有查看我的路由文件,在我的路由中我有'资源:client_rescan,:only => [:index]'当我这样做rake routes时没有按预期显示删除,但是测试不看那些:

it "should not …
Run Code Online (Sandbox Code Playgroud)

ruby rspec ruby-on-rails-3

0
推荐指数
1
解决办法
1022
查看次数

标签 统计

rspec ×1

ruby ×1

ruby-on-rails-3 ×1