Ruby on rails 我应该在哪里存储方法以使它们对我的应用程序和RSpec都可用?

Ruby on rails 我应该在哪里存储方法以使它们对我的应用程序和RSpec都可用?,ruby-on-rails,rspec,Ruby On Rails,Rspec,我需要创建一些对我的应用程序(模型、视图和控制器)和RSpec都可用的方法 具体来说,我需要创建一些包含关键逻辑的path\u helper方法。我需要将它们提供给RSpec,以便我可以运行以下测试: controller.should redirect_to my_custom_path_helper(@object) 我假设它们应该放在/lib中的某个地方,但是我不确定如何构造它(mixin模块-如果是,我应该将模块混合到什么中?) 另一种选择是,如果我可以从RSpec访问应用程序助手 编

我需要创建一些对我的应用程序(模型、视图和控制器)和RSpec都可用的方法

具体来说,我需要创建一些包含关键逻辑的path\u helper方法。我需要将它们提供给RSpec,以便我可以运行以下测试:

controller.should redirect_to my_custom_path_helper(@object)
我假设它们应该放在
/lib
中的某个地方,但是我不确定如何构造它(mixin模块-如果是,我应该将模块混合到什么中?)

另一种选择是,如果我可以从RSpec访问应用程序助手

编辑:请注意

这不是测试助手方法的问题,而是让应用程序和RSpec都可以访问它们


我之所以需要这样做,是因为我需要围绕rails路径帮助程序的包装逻辑,当我在RSpec中测试
应该重定向到..u path
时,我不想复制这些路径帮助程序的逻辑。

没有尝试过,但这看起来是解决问题的一种有趣的方法:

我们在测试模块时经常使用的模型是将模块包含在为测试创建的类中(在规范文件中)或包含在规范本身中


Rspec rails gem似乎支持


gem可以在您的任何规格中提供帮助程序:“为您的帮助程序编写规格非常简单。只需告诉示例组帮助程序的名称,示例组将显示包含帮助程序的对象。”

您可以通过(在spec/spec\u helper.rb中)使RSpec包含模块:

RSpec.configure do|config|
config.include模块
结束
如果要使用路由路径帮助器,可以按如下方式包括它们:

RSpec.configure do|config|
config.include Rails.application.routes.url\u helpers
结束

你好,m\x。我不是在找助手测试。我希望让助手可用gem可以做到:“为助手编写规范很简单。只需告诉示例组助手的名称,示例组将公开包含该助手的对象”。在我花了那么多时间试图帮助你之后,我对-1感到有点难过。你完全正确-我这么做是因为尽管你随后的评论解释了你的理由,但第一个是关于测试助手的。不管怎样,我道歉,你的帮助是无价的,我投反对票是不礼貌的。如果你可以编辑它以包含你随后的评论,我可以更改否决票。非常感谢。