2012-09-13 3 views
0

두 가지 질문이 있습니다. 첫 번째는 기본적인 것입니다. MiniTest는 UnitTest를 대체합니다. 따라서 레일즈에서 생성기를 사용한다면, ActiveSupport :: TestCase 클래스를 얻을 수 있습니다. minitest (minitest-spec-rails 제외)를 사용하는 경우MiniTest로 도메인 객체 추출

1.must_equal 1 
# instead of 
assert_equal 1, 1 

맞습니까? 따라서 railscast # 327 (pro episode paywall sry)에 설명 된 MiniTest :: Unit :: TestCase 클래스가있는 이유가 혼란 스럽습니다. 실제로 사용하고있는 테스트 스위트를 볼 때 혼란 스럽습니다. minitest가 드롭 인 대체품이라면 minitest를 사용하여 testunit 스타일의 레일 테스트를 실행합니다. 내가 가지고 나가면 testunit 테스트를 실행하기 위해 testunit을 사용하고 있습니까?

그래서 MiniTest를 사용하여 TestUnit 스타일 테스트를 실행한다고 가정 해 봅니다.

require 'test_helper' 
class FooTest < ActiveSupport::TestCase 
end 

도메인 객체 추출시 destroyallsoftware의 스크린 캐스트를보고 난 영감을 받았습니다. 그는 spork trickery (정확히 내가하는 일)에 의지하지 않고 test_helper.rb를로드하지 않고 테스트 스위트 속도를 높이는 것에 대해 좋은 점을 제시한다. 하지만 그게 내가 ActiveSupport :: TestCase를 제공 ​​할 때 test_helper.rb를 로딩하는 것을 피할 수 있을까요?

도메인 객체를 추출하여 MiniTest 또는 TestUnit과 함께 lib/또는 extras /에 넣을 수 있습니까?

답변

2

첫 번째 질문에 대한 대답은 "아니오, 정확하지 않음"입니다. Minitest는 Test :: Unit의 "드롭 인 대체"가 아닙니다. Minitest는 대부분의 Test :: Unit에 대한 간단한 구현을 제공하지만 전부는 아닙니다. Ruby 1.9에서 Test :: Unit 라이브러리는 Minitest의 TestCase 클래스 위에 구축되었으며 두 라이브러리 사이의 틈새를 채 웁니다.

Minitest는 테스트 작성을위한 두 가지 모드 인 고전적인 TestCase 방식과 별도의 Spec DSL을 제공합니다. Test :: Unit과 마찬가지로 Spec DSL은 Minitest의 TestCase 위에 구축됩니다. 따라서 1.9의 Test :: Unit과 Minitest의 Spec DSL은 둘 다 Minitest의 TestCase를 기반으로 만들어졌지만 Test :: Unit의 Spec DSL은 그 조상의 일부가 아니기 때문에 사용할 수 없습니다.

두 번째 질문에 대한 대답은 ActiveSupport :: TestCase를 사용하려면 test_helper.rb를 피할 수 없다는 것입니다. minitest/autorun을 요구하고 테스트 클래스가 MiniTest :: Unit :: TestCase로부터 상속받을 필요가 있습니다.

+0

우수한 응답 – squarism

관련 문제