I18n 모듈을 사용하여 Rails 애플리케이션에 대한 국제화 지원을 구현했습니다. 이제이 구현을 테스트하고 있습니다.assert_select가 실패 할 때 나머지 블록을 건너 뛰는 루비 레일
assert_select와 함께 기능 테스트를 사용하여 클래스 이름이 "translation_missing"인 스팬 HTML 요소가 없다는 것을 주장합니다.이 테스트는 정상적으로 작동합니다.
나는 config/locales 디렉토리에서 모든 로케일 파일을 가져 오는 도우미 메서드도 작성 했으므로 잘 작동합니다.
제 문제는 각 로케일을 반복하면서 누락 된 번역이 없는지 확인하려고 할 때입니다. 한 로케일에 대한 테스트가 실패하면 블록을 종료하고 실패를보고합니다. 테스트가 계속 실행되고 적용 가능한 경우 여러 실패 메시지를 출력하고 싶습니다. 테스트는 다음과 같습니다.
test "index page no missing translations" do
# Login as admin to avoid 302 errors
login_as(@user)
# Get a list of the locales
locales = get_locales()
# Check each locale for missing translations
locales.each do |locale|
get :index, :locale => locale
assert_select "span.translation_missing", false, "Broadcasts index page: Translations missing from #{locale}.yml"
end
end
블록이 종료되는 것을 막을 수있는 방법이 있습니까?
미리 감사드립니다.
테스트의 요점은 작동하고있는 부분과 그렇지 않은 부분을 파악하는 것입니다. 나는 성가신 일이 있다는 것을 알지만, 시험은 한 가지를 시험해야합니다. 색인 페이지에서 정확할 것으로 예상되는 지역 주민이 몇 명 있다면 테스트에서 개별적으로 점검하십시오. 그렇게할만한 자동화 된 방법이 있는지 확실하지 않습니다. – agmcleod
모든 로케일을 한꺼번에 검사하는 주된 이유는 미래에 추가 된 로케일이 자동으로 테스트 될 수 있도록하는 것이 었습니다. 미래의 유지 관리자는 테스트 자체를 작성할 수 없습니다. – warby