STI를 사용하는 여러 모델이 있으며 각 모델을 테스트 할 때 동일한 단위 테스트를 사용하고 싶습니다. 예를 들면 다음과 같습니다.STI를 사용하는 모델의 단위 테스트 재 사용
class RegularList < List
class OtherList < List
class ListTest < ActiveSupport::TestCase
fixtures :lists
def test_word_count
list = lists(:regular_list)
assert_equal(0, list.count)
end
end
OtherList 모델에 대해 test_word_count 테스트를 사용하면 어떻게 될까요? 테스트는 훨씬 더 길어서 각 모델에 대해 다시 입력하지 않아도됩니다. 감사.
편집 : 랜디의 제안에 따라 믹스 인을 사용하려고합니다. 이것은 내가 가지고 있지만 오류가 무엇입니까 것입니다 : "개체 일정 ListTestMethods 누락되지 않습니다 (오류 ArgumentError)"
lib 디렉토리에/list_test_methods.rb :
module ListTestMethods
fixtures :lists
def test_word_count
...
end
end
regular_list_test.rb에서 :
require File.dirname(__FILE__) + '/../test_helper'
class RegularListTest < ActiveSupport::TestCase
include ListTestMethods
protected
def list_type
return :regular_list
end
end
편집 : RegularListTest에 조명기 호출을 넣고 모듈에서 제거하면 모든 것이 작동하는 것 같습니다.
아, 조명기는 test_helper.rb의 한 방법이므로 각 테스트 클래스로 이동해야합니다. 나는 아래 나의 대답을 업데이 트했습니다. –