0

테스트를 처음하는 사람입니다. 누군가가 rspec에서 current_user를 테스트하는 방법을 알려줄 수 있습니까?현재 사용자에 대한 Rspec 테스트

예제 코드 :

쉬운 하나

def index 
    @todos = current_user.todos 
end 

좀 더 하드

def index 
    @events = current_user.participating_events.includes( 
      [:events_users, :participants, :user]) 
    end 

하나 내가 문제의 비슷한 종류의 RSpec에 테스트를 작성하는 방법에 대해 설명합니다.

+0

예 지금까지 시도했습니다. 은 "인덱스 페이지의 모든 수행 할 작업을해야한다" 방문 "/ 수행 할 작업" 기대 (todo.title) .TO EQ (제목)를 할 기대 (todo.desc) .TO EQ (내림차순) 끝 그러나 current_user ... 등의 할일을 확인하는 방법을 잘 모르겠습니다. – Packer

+0

본문 질문에 대한 귀하의 시도를 게시하십시오. –

+0

예, 코드를 작성했습니다. 그러나 나는 현재 사용자에게 아무 것도없는 CRUD 작업만을위한 코드를 작성했습니다. 이제 현재 사용자에 대한 테스트도 작성하려고합니다. 여기에 내 테스트 파일 링크가 있습니다. [링크] (http://pastebin.com/j4m5jTv3) – Packer

답변

0

통합 테스트이기 때문에 컨트롤러가 생성 한 세션을 사양이 관리하도록 실제 로그인을 시도해야합니다. on this answer 아이디어를 따라 할 수 있지만, 기본적으로 주어진 사용자를 인증해야합니다. 그러나 당신은 이미하고 있습니다, 그래서 아마도 당신이 가지고있는 문제는 그 질문에 의해 분명하지 않습니다.

테스트에서 이상한 점을 발견 한 한 가지 점은 일부 테스트에서는 event이 확인되었지만 정의 된 부분을 볼 수 없다는 것입니다. 그것은 당신이 rspec에 의해 어떤 식 으로든 설정 될 것으로 기대했던 것과 같습니다. 그렇다면 문제가 될 수 있습니다. 스펙의 이런 종류의, 당신은 그들이이 만들어진 경우 양식을 작성하고 결과를 테스트하기 전에, 이벤트를 저장 한 후, 다음

event = Event.last 

와 함께 DB에서로드, 그래서 테스트하기 위해 DB에서 개체를로드해야합니다 저장된 값을 조사하십시오.

이것이 의미가 있고 이것이 문제를 해결하면 알려주세요. 그렇지 않으면 어쩌면 어떤 오류가 발생했는지에 대한 백 트레이스를 작성하거나 게시하려고 시도하고 있는지 명확히하려고 시도하십시오.

관련 문제