使用rspec控制器来测试JSON API

时间:2014-01-30 01:01:35

标签: ruby-on-rails rspec ruby-on-rails-3.2 rspec2

我正在为JSON API编写一些测试。使用带有render_views的控制器规范是否可以接受这种方式?例如,像:

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?这些应该是功能规格吗?

1 个答案:

答案 0 :(得分:1)

请考虑使用请求规范。它们将允许您运行完整的堆栈测试,包括控制器和视图层,而不使用控制器规范中的render_views

Here is a good article介绍了一些细节。