我的控制器操作:
def single
final_static_matrix = Single.final_static_matrix(average_static_matrix, params[:priorities])
...
end
在我的lib / single.rb中:
module Single
def self.final_static_matrix(average_static_matrix = {}, priorities = {})
final_static_matrix = Hash.new
for i in 0..average_static_matrix.length-1
final_static_matrix[i.to_s] = average_static_matrix*priorities[i.to_s]
end
final_static_matrix
end
end
在我的controller_spec.rb中:
it "should be successful" do
get :single, :id => 1
priorities = {"0" => "1"}
matrix = {"0" => "3"}
Single.final_static_matrix(matrix, priorities)
response.should be_success
end
1)我应该如何从lib /目录中调用该函数? 2)如果我将在控制器文件中编写测试或创建类似single_spec.rb的smth,那会更好?
答案 0 :(得分:1)
我会做什么:在控制器规范内,我会测试该方法被调用:
describe "GET :single" do
it "succeeds" do
Single.should_receive(:final_static_matrix).and_return('something')
get :single, :id => 1
end
end
并在spec/lib/single_spec.rb
内,您测试final_static_matrix
是否按预期行事。
您可以查看rspec2 here的文档。
答案 1 :(得分:0)
如果您已将其包含在您的应用程序中,则应该可以在测试中使用它。
对于控制器测试,请测试控制器。 如果您需要单独使用,可以对库本身进行单元测试。