2010-11-22 1 views
4

하나 개의 언어로 생성 된 출력을 테스트해야, 플래시 메시지와 생성 된 뷰를 테스트 :루비 온 레일즈 모범 사례 (플래시 MSG를 및 뷰)와 국제화

should_set_the_flash_to /Hello/i 

또는 국제화를 지참 당신의 검사 결과에 :

should_set_the_flash_to I18n.t("sign_up.welcome") 

그것은 내 질문에 그냥 ... 테스트 및 국제화를 결합 이미 좋은 설명이있는 경우 링크와 함께 답변을 주시기 ...

을 요청할 권리 질문 아니라고 할 수있다

업데이트 : Arsen7의 답변을받은 후 올바른 국제화 코드를 입력하십시오. Arsen7!

답변

5

테스트 할 내용에 따라 다릅니다.

플래시 텍스트가 "안녕하세요"인지 여부를 테스트하면 사용자에게 표시되는 내용을 알고 있는지 확인할 수 있습니다.

반면에 주어진 문자열에 대해 도우미 "t"가 반환하는 것과 동일한 것이 플래시에 포함되어 있는지 테스트하는 경우가 있습니다 - 예를 들어 번역 파일이 자주 변경되거나 누군가가 콘텐츠를 만든 경우 그렇지 않으면 얼마 후에.

저는 개인적으로 항상 정확한 번역본 (assert_equal "Hello", flash[:message] 가지)을 테스트합니다.

그것은 나에게 보장 : 1) 번역 ​​2) 언어가 제대로 (당신이 영어 사용자를위한 폴란드어 메시지를 원하지 않는 당신을)의 두 번째 부분에 관해서는

인식, OK 소리 귀하의 질문 :

"should_set_the_flash_to I18n.t("sign_up.welcome")"이 효과가 있습니까?

+0

Thx Arsen7! (나는 작업중인 I18n.t ("sign_up.welcome") 코드로 질문을 업데이트했습니다. –

+0

아마도 내 질문을 다음과 같이 재구성해야합니다. 올바른보기 또는 플래시 메시지가 렌더링되는지 테스트에 내 테스트를 분리하려면 어떻게해야합니까?), 그리고 Internationalization이 필수 (2)로 작동하고 중요한 구가 로케일 .yml 파일에 올바르게 입력되었다고 생각합니까? (1) 나는 I18n.t ("sign_up.welcome")을 선택하려고합니다. (3) 나는 assert_equal "Hello", flash [: message]를 선택하겠다. 아직도 남아있다 : ​​모든 컨트롤러에서 국제화가 올바르게 작동한다는 것을 체계적으로 테스트하는 방법이 있는가? 플래시 메시지? –

+0

전체적으로? 테스트 할 각보기에서 두 줄의 테스트를 결합 할 수 있습니다 :'should_set_the_flash_to "Hello"; assert_equal "Hello", I18n.t ("key")'문언이 예기치 않게 변경되면 알림을받습니다. 문제가 번역 된 것인지 또는 잘못된 키를 가져 왔는지 알 수 있습니다. 렌더링 된 페이지의 텍스트가 올 바르면 I18n이 작동하는지 여부는 중요하지 않습니다. 구현이 아닌 효과를 테스트하십시오. 언젠가는 다른 라이브러리를 사용하는 대신에 테스트가 성공을보고 할 것입니다. – Arsen7

관련 문제