我应该如何测试这个,我是否因为它正在击中数据库而模拟?

时间:2011-04-07 04:16:40

标签: ruby-on-rails ruby rspec

我有一个方法可以做到这一点:

给定一个标记数组,如果它存在,它会尝试从数据库中获取其名称,否则会创建一个新标记。然后它返回所有标记对象的集合。

tag_text = "general tag1 tag2"

Tag.rb模型有一个名称属性,如果存在,它将在数据库中。

我应该如何测试方法:

 def find_tags_from_tag_text (tag_text)

          tags = []

          tag_text.split.each do |x|
               t = Tag.find_by_name(x)

               if t.nil?  
                 t = Tag.new(name => x).save!
               end

               tags << t

          end

    end

1 个答案:

答案 0 :(得分:0)

Rails测试指南http://guides.rubyonrails.org/testing.html几乎涵盖了您要做的事情,您是否已将其检出? TL; DR:1)准备夹具 - 用于初始化空白测试数据库的数据,2)编写测试以将实际结果与模型方法的预期结果进行比较。