2013-02-18 2 views
-1

를 요청 나는 다음과 같은 단계 정의가 : 파일 업로드 관련오이 + 카피 바라 단계 정의 - POST를 전송은

When /^I upload it$/ do 

end 

합니다.

visit "/files/new" 
within('#upload-form') do 
    attach_file('File', @files_path+'/file.txt') 
    click_button('Upload') 
end 

이 나던에 종속으로, 매우 강력한 테스트를 보인다 : 내가 말할 수있는 것은 GET이 유일한 방법 .. 및 POST 요청을 할 수있는 유일한 방법입니다으로부터 카피 바라의 방문 방법은 구현입니다 파일/새 템플릿 내의 HTML 및 양식 태그

이 문제를 해결하는 더 좋은 방법은 없나요?

포스트 files_new_path {파일 : => 'a_file_on_the_system.txt'} 나는이 같은 마음 뭔가했다

하지만 다시 오이 시험은 통합 테스트는 ..입니다 그래서 '공식'또는 최선의 방법으로 인 이 레벨에서 테스트를 작성 하시겠습니까?

답변

1

카피 바라 코드는 인간의 행동을 모방합니다. 인간은 "POST"하지만 "방문", "click_button"등은 기대할 수 없습니다.

언급 한 구문은 컨트롤러 테스트에 더 적합하지만 Capybara와의 통합 테스트에는 적합하지 않습니다.

제 생각에는 통합 테스트의 가장 좋은 스타일은 인간이면서 기계처럼 행동하고 생각하는 것입니다.

관련 문제