如何测试也定义为辅助方法的 ApplicationController 方法?
在我的 ApplicationController 中,我有一个定义为辅助方法的方法:
helper_method :some_method_here
- 我如何在 RSpec 中测试 ApplicationController?
- 在测试我的视图/助手时,如何包含/调用此助手方法?
我正在使用 Rails3 和 RSpec2
In my ApplicationController I have a method defined as a helper method:
helper_method :some_method_here
- How do I test ApplicationController in RSpec at all?
- How do I include/call this helper method when testing my views/helpers?
I'm using Rails3 with RSpec2
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您可以使用匿名控制器< /a> 测试您的 ApplicationController,如 RSpec 文档中所述。还有一个关于测试助手的部分。
You can use an anonymous controller to test your ApplicationController, as describe in the RSpec documentation. There's also a section on testing helpers.
您可以在规范中的
subject
或@controller
上调用辅助方法。我一直在寻找这个问题的解决方案,但匿名控制器不是我想要的。假设您有一个位于
app/controllers/application_controller.rb
的控制器,它有一个未绑定到 REST 路径的简单方法:然后您可以在
spec/controllers/application_controller_spec 中编写测试.rb
如下:虽然
@controller
和subject
在这里可以互换使用,但我会选择subject
因为它是 RSpec目前惯用的方式。You can invoke your helper methods on
subject
or@controller
in the specification.I have been looking for a solution to this problem and anonymous controller was not what I was looking for. Let's say you have a controller living at
app/controllers/application_controller.rb
with a simple method which is not bound to a REST path:Then you can write your test in
spec/controllers/application_controller_spec.rb
as follows:While
@controller
andsubject
can be used interchangeable here, I would go forsubject
as its the RSpec idiomatic way for now.