새로운 테스트 헬퍼는 Turbo Rails Gem의 포크를 생성하고 로컬 환경에서 개발되었습니다.
헬퍼 정의 및 테스트 전략
test_assertions
파일에assert_turbo_frame
및assert_no_turbo_frame
메서드 스켈레톤을 정의했습니다.Minitest::Assertion
예외 발생 검증을 통해 헬퍼 신뢰성을 확보하는 테스트 전략을 수립했습니다.- 테스트 파일은 Turbo Frame을 렌더링하는
test/frames/frame_request_controller_test.rb
로 선정되었습니다.
assert_turbo_frame
구현
ActionDispatch::IntegrationTest
를 상속받는TurboTestAssertionsFrameTest
클래스에 구현되었습니다.- 인수:
id
는 필수이며,loading
,source
,target
은 선택적 속성 검증을 지원합니다. - 셀렉터:
turbo-frame[id="ID"]
형태 등 동적으로 구성됩니다. - 검증:
assert_selector
로 요소 존재 및 속성을 확인하며,count
는 기본적으로1
입니다. - 블록: Turbo Frame 내부 콘텐츠에 대한 추가 검사를 수행할 수 있습니다.
- 일치하는 프레임에서 통과하고, 불일치 시
Minitest::Assertion
을 발생시키는 테스트를 성공적으로 통과했습니다.
assert_no_turbo_frame
구현
assert_turbo_frame
과 유사한 인수를 받습니다.assert_selector
를 사용하되,count
를0
으로 설정하여 해당 Turbo Frame이 존재하지 않음을 검증합니다.- 요소 부재 확인이 목적이므로 블록은 필요하지 않습니다.
- 일치하지 않는 프레임에서 통과하고, 일치 시
Minitest::Assertion
을 발생시키는 테스트를 성공적으로 통과했습니다.
이 구현을 통해 Turbo Rails Gem에 더욱 완전한 테스트 헬퍼 세트가 추가되어, 개발자들이 Turbo Frame 기반의 동적 UI를 효과적으로 테스트할 수 있게 되었습니다.