2013-02-16 13 views
1

我正在编写一个将专注于搜索的Rails应用程序。为此,我觉得我应该将控制器上的实际search操作从另一种方法中分离出来,以准备搜索参数,以确保我可以准确测试。但是,我不确定在哪里放置这种方法。 Others已经告诉我把它放到一个新的类中,但我不确定你在Rails项目中放置了哪个额外的类文件。有没有习惯的目录位置,人们通常会存储额外的类?如果不是,那么这种方法如何在同一个控制器中作为私有方法进行测试?如何编写(测试)不是控制器或模型的Rails类

回答

2

你通常会把额外的类放在lib文件夹中。至于测试,没有什么特别的。如果你正在使用RSpec,只需做:

describe ExtraClass do  
    it 'saves the day'  
end 
+0

怎么会有人去加载这个新类到控制器?我收到错误,例如'未初始化的常量FirstController :: NewClass'。我试图在控制器文件的第一行使用'load',但我不确定是否应该这样做。 – 2013-02-16 18:38:00

+0

您是否先重新启动服务器?根据您的Rails版本,您应该自动加载该类。 – mathieugagne 2013-02-16 18:39:57

+0

我正在尝试使用TDD从头开始构建,因此我重新启动的唯一一件事是我的Guard/Spork测试服务器。我在文件'#{Rails.root}/lib/search_filter.rb'中命名了新的类SearchFilter。这听起来正确吗? – 2013-02-16 18:42:22

相关问题