2014-01-30 2 views
0

JSON API에 대한 몇 가지 테스트를 작성 중입니다. render_views와 함께 컨트롤러 사양을 사용하는 것이 허용 가능한 방법일까요? 예를 들면 다음과 같습니다.rspec 컨트롤러를 사용하여 JSON API를 테스트하기

describe 'task028: Adding an Item via MenuHeader', task028: true do 
    it 'should create a new menu item' do 
     m=FactoryGirl.create(:menu) 
     mh=FactoryGirl.create(:header, parent: nil, menu_id: m.id) 
     Item.count.should eq(0) 
     post :create, {item: { header: "my menu item header", detail: "my menu item detail", menu_header_id: mh.id, position: 1, is_enabled: true }} 
     MenuItem.count.should eq(1) 
     JSON.parse(response.body)['status'].should eq('success') 
     JSON.parse(response.body)['preceding_item_id'].should eq(nil) 
     response.code.should eq('200') 
    end 

이 스타일은 괜찮습니까? 아니면 JSON API를 테스트하는 다른/더 좋은 방법이 있습니까? 이것들은 사양이 될까요?

+0

확실한 이유는 무엇입니까? 프로젝트 설정에서 작동하는지 확인하십시오. – phoet

+0

thx @phoet 예, 작동하지 - 모범 사례인지 여부는 확실하지 않습니다. 나는 테스트를 할 때 온라인 리소스에 약간의 열정을 갖고 있으며, 테스트를 수행하는 방법에 대해서는 약간 비 윤리적입니다. – timpone

답변

1

요청 사양을 대신 사용해보십시오. 컨트롤러 사양에 render_views을 사용하지 않고도 컨트롤러와 뷰 레이어를 포함한 전체 스택 테스트를 실행할 수 있습니다.

Here is a good article 몇 가지 세부 사항이 있습니다.

관련 문제