使用Module在Test :: Unit中对测试进行分组

时间:2011-05-26 07:43:25

标签: ruby-on-rails unit-testing

当我在一个测试类中有很多测试时,我使用Module对测试进行分组。

因为我对rails很新,我的问题是:

在不知道其他副作用的情况下,将测试分组是正确的还是我做了非常愚蠢的事情?

以下是代码:

require 'test_helper'

module AttributeValidationTest
  extend ActiveSupport::Testing::Declarative

  test "should not ...." do
    # .....
  end

  # other tests here....
end

module AnotherGroupTest
  extend ActiveSupport::Testing::Declarative

  # tests.....
end

# may be another modules..   

class MyModelTest < ActiveSupport::TestCase
  include AttributeValidationTest  
  include AnotherGroupTest

end

感谢。

1 个答案:

答案 0 :(得分:0)

问题是:通过将模块中的测试分组,您获得了什么?

我,根据我的谦逊传统,只是将它们放在彼此不远的地方,并给它们提供相同的名称前缀,例如:

def test_user_name_handles_strange_chars
def test_user_name_handles_empty_string
def test_user_name_...

(您可以毫无问题地使用新语法,如test "name should handle strange...."

这有助于我只测试部分功能(因为我的完整测试套件大约需要一个小时):

cd test && ruby unit/user_test.rb -n /test_user_name_/