组织Rails功能和单元测试用例的最佳方法是什么?

时间:2011-11-02 23:51:41

标签: ruby-on-rails unit-testing testing automated-tests

我一直在按照控制器/操作/场景或模型/方法/场景的层次结构来组织我的测试用例。它看起来自然而清晰。但我发现我必须为同一场景的不同操作和方法重复设置测试数据。虽然我可以通过代码重用来减少代码冗余。但我认为这仍然浪费时间,特别是机器一次又一次地设置这些测试数据。是否有人按场景组织这些测试用例?组织测试用例的最佳方法是什么?

1 个答案:

答案 0 :(得分:2)

如果这个问题是关于在生成测试数据时重复自己,您应该查看以下帮助您生成测试数据的宝石:

如果这个问题是关于运行测试的延迟,你应该看看spork

如果这个问题是关于组织测试,我认为一种常见的方法是将测试分为单元测试和功能测试。

在单元测试中逐个测试所有方法。并测试功能测试中的所有场景。

规格/单元/ user_spec.rb

describe "#generate_password_salt" do
  user = User.new(password: 'foobar')
  user.generate_password_salt.should == '1231asdas'
end

规格/功能/ user_spec.rb

describe "when creating new user" do
  it "should generate password salt" do
     ...
  end      
end