감사 모델이 있는데 HTTP 요청이 생성 될 때 새 레코드가 추가되는지 테스트하고 싶습니다.모델 사양 내에서 GET을 호출하려면 어떻게해야합니까?
내가 컨트롤러 사양에서와 같이
get "/"
를 호출 할 수없는 것. 대신에 메소드가 없다는 오류가 발생합니다. 내가 뭘 놓치고 있니?
건배, 그램
감사 모델이 있는데 HTTP 요청이 생성 될 때 새 레코드가 추가되는지 테스트하고 싶습니다.모델 사양 내에서 GET을 호출하려면 어떻게해야합니까?
내가 컨트롤러 사양에서와 같이
get "/"
를 호출 할 수없는 것. 대신에 메소드가 없다는 오류가 발생합니다. 내가 뭘 놓치고 있니?
건배, 그램
컨트롤러 사양을 모델 사양에 쓸 수 없으며 작성할 수 없습니다. RSpec은 컨트롤러 사양에만 컨트롤러 관련 API를 추가하므로 모델 사양 내에서 #get #post #put 및 #delete를 호출 할 수 없습니다.
당신은 테스트하기 위해 무엇을 생각 어디를 얻을 수 RSpec에 레일 프로젝트에 README를 읽을 수 있습니다 https://github.com/rspec/rspec-rails
난 당신이 ... 액션의 이름을 할 필요가 믿는 그래서 예를 들어
get :show
또는
get :edit
또는
get :new
아니, 나는 여전히 GET에 대해 "아니오 방법"오류가 발생합니다. 또한 컨트롤러가 아닌 모델 사양에 있다고 가정하면 컨트롤러에 액션을 적용해야할지 알 수 없습니다. – Simmo
그래서 모델 사양에서 컨트롤러 작업을 호출하는 이유에 대해 혼란 스럽습니다. 당신은 그 물건을 나타 내기 위해 모의, 스텁 및 가짜 입력을 사용해야합니다. 스펙은 레이어를 스팬 할 수있는 통합 테스트를 제외하고 레이어를 서로 격리시켜야합니다. 이것은 일반적인 관행이지 Law가 아닙니다. 전화가 왜 작동하지 않는지에 관해서는 잘 모르겠다. 모델에서 이것을 해보려하지 않았다. 차이점이 있는지 잘 모르겠다. – jaydel
응용 프로그램 컨트롤러에서 before_filter 메서드를 사용하여 감사가 트리거되므로 모든 URL에 대한 호출로 인해 감사 레코드가 생성되는지 확인하려고합니다. 이것을 테스트하는 논리적 인 방법처럼 보였지만 RSpec을 처음 접했습니다! – Simmo
안녕 Solnic. 합리적인 것처럼 보이지만 직접 액세스 할 수 없으므로 application_controller를 어떻게 테스트해야합니까? 그렇지? 테스트를 위해 정상적인 컨트롤러를 선택할 수는 있지만 테스트가 가장 관련성이 높은 곳에서 테스트를 수행하는 것으로 보입니다. 감사. – Simmo
application_controller는 모든 컨트롤러의 기반이되므로 공유 동작이있는 경우 공유 사양을 작성하여 모든 컨트롤러 사양에 사용하십시오 다음은 공유 사양에 대한 유용한 정보입니다. http : //blog.davidchelimsky .net/2010/11/07/지정 믹스 인 -shared-example-groups-in-rspec-2 / – solnic