기본적으로 두 모델 A와 B를 생성하고 B가 A에 속한 B와 B 사이의 연결을 설정하고 A를 반환하는 서비스 객체 (http://railscasts.com/episodes/398-service-objects)를 생성했습니다. via a 협회를 통해).테스트 용 유효하지 않은 모델 반환
오류가 발생하면 오류 정보와 함께 해시를 반환합니다. 이 메서드를 테스트하려고 할 때 모델 반환 여부 또는 오류 정보가 포함 된 해시 중 하나가 가능한 두 가지 반환 유형이있는 곳에 문제가 발생했습니다.
이것은 설계가 잘못되었다는 신호입니까? 나는 당신이 첫번째로 시험 할 때 (TDD) 당신이 그런 디자인 문제들을 피하는 것을 안다.
문제가있는 경우 잘못된 A 모델을 반환해야한다는 것을 알고 있습니다. 모델 B가 생성시 오류가 발생한다고 가정하면 잘못된 A 모델을 어떻게 계속 반환 할 수 있습니까?
오류 해시를 반환해도 문제가없는 경우이 메서드를 어떻게 테스트하여 친숙하게 테스트 할 수 있습니까?
답변 해 주셔서 감사합니다. API를 작성 중이므로 JSON에서 오류를 정상적으로 반환해야하므로 Ruby 예외/오류를 발생시킬 여유가 없습니다. 이 경우 무엇을 제안 하시겠습니까? – darksky
업데이트 된 답변의 마지막 단락을 참조하십시오. –
예 컨트롤러에서 이미 그렇게했습니다. 내 서비스는 유효한 모델 (컨트롤러가 정상적으로 계속됨) 또는 오류를 나타내는 해시 (이 경우 HTTP 응답 코드 오류 발생 등)를 반환합니다. 이 경우 내 서비스가 해시 또는 유효한 모델을 반환하는 것이 좋을지, 아니면 잘못된 모델을 반환 할 수 있는지 확인해야합니까? 모델 B가 유효하지 않은 경우 (B에 대한 위의 질문을 다시보십시오)? – darksky