주제에 대해 약간의 인터넷 검색을 해봤지만 여전히 혼란 스럽습니다.RSpec으로 API 리소스를 테스트하십시오.
Zendesk API Ruby Client로 사용자 정의 도움말 페이지를 만들고 있는데, ZendeskAPI::Ticket
리소스 생성을 테스트해야 할 단계에 있습니다. 다음 코드는 spec/features 디렉토리에 있습니다. 유효한 값을 가진 양식을 채우고 양식을 #create
조치로 제출합니다. 상당히 표준적이고 간단한 것들.
require 'spec_helper'
feature 'ticket creation' do
scenario 'user creates new ticket' do
visit root_path
fill_in 'Name', with: 'Billybob Joe'
fill_in 'Email', with: '[email protected]'
fill_in 'Subject', with: 'Aw, goshdarnit!'
fill_in 'Issue', with: 'My computer spontaneously blew up!'
click_button 'Create Ticket'
expect(page).to have_content('Ticket details')
end
end
그리고 여기는 티켓 컨트롤러의 관련 부분입니다. ticket_valid?
메서드는 해시 옵션에 대한 최소 유효성 검사를 제공하고 client
은 ZendeskAPI::Client
의 인스턴스입니다.
def create
options = { subject: params[:subject], comment: { value: params[:issue] },
requester: params[:email], priority: 'normal' }
if ticket_valid? options
flash[:success] = 'Ticket created.'
@ticket = ZendeskAPI::Ticket.create(client, options)
redirect_to ticket_path(@ticket.id)
else
flash[:error] = 'Something went wrong. Try again.'
redirect_to root_url
end
end
문제는 내가 테스트를 실행 할 때마다, 실제 티켓은 그냥 실제로 티켓을 생성하지 않고 성공적으로 양식 제출을 테스트 할 때이 나중에 수동으로 삭제해야 할거야 젠 데스크 백엔드에서 생성된다.
제 질문은 입니다. 테스트를 실행할 때마다 Zendesk 백엔드에서 실제 티켓을 만들지 않고 티켓 생성 양식을 테스트하려면 어떻게해야합니까?
내 인터넷 검색의 결과로 읽었던 기사와 블로그는 RackTest를 사용하는 것을 막연하게 나타내지 만, 다른 사람들은 카피 바라를 전혀 사용하지 않는 것이 좋습니다. 이로 인해 더 혼란 스럽습니다. 나는 아직 RSpec에 비교적 익숙하지 않고 API를 사용하여 Rails 애플리케이션을 다루는 것에있어서 새로운 것이기 때문에 명확한 설명은 훌륭 할 것이다.
미리 감사드립니다. 넌 최고야.