Ruby on rails 如何测试链接\u到\u,除非\u当前在RSpec视图示例组中

Ruby on rails 如何测试链接\u到\u,除非\u当前在RSpec视图示例组中,ruby-on-rails,ruby-on-rails-3,rspec,rspec2,Ruby On Rails,Ruby On Rails 3,Rspec,Rspec2,我正在用Rails3学习RSpec2,虽然到目前为止进展得很顺利,但我在测试助手链接时遇到了一个问题,除非视图中的链接是最新的。我一直在尝试从视图规范中使用一个简单的assert\u select来确定是否在以下局部视图(HAML)中生成链接: 但是,我不知道如何让视图规范识别“当前”的含义,因为它是一个视图规范,它只测试视图,而不测试请求。我知道这在控制器规范中要简单得多,但我认为我应该测试视图在其规范中的功能,将此测试转移到控制器规范中会让事情变得非常混乱。我要问的是:是否有任何方法可以告诉

我正在用Rails3学习RSpec2,虽然到目前为止进展得很顺利,但我在测试助手链接时遇到了一个问题,除非视图中的链接是最新的。我一直在尝试从视图规范中使用一个简单的assert\u select来确定是否在以下局部视图(HAML)中生成链接:


但是,我不知道如何让视图规范识别“当前”的含义,因为它是一个视图规范,它只测试视图,而不测试请求。我知道这在控制器规范中要简单得多,但我认为我应该测试视图在其规范中的功能,将此测试转移到控制器规范中会让事情变得非常混乱。我要问的是:是否有任何方法可以告诉视图规范(可能在“before”块中)当前页面是什么?另外,我在组织考试方面做得对吗?这个测试应该正确地驻留在控制器规范中吗?

没关系,我最终找到了答案。您必须将UrlHelper.current_页面存根吗?如果传递的url选项与要用作当前页面的页面匹配,则返回true:

view.stub("current_page?".to_sym) {|options| url_for(options) == post_path(@post) }
我仍然不知道这是否是我应该做RSpec测试的方式,但是,无论如何,这是有效的P

view.stub("current_page?".to_sym) {|options| url_for(options) == post_path(@post) }