새로운 테스트 헬퍼는 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를 효과적으로 테스트할 수 있게 되었습니다.