他の開発者に役立つ場合に備えて、これまでに見つけたもので答えます。
spec / api / items_spec.rb
require 'spec_helper'
class ItemsSpec < ActionDispatch::IntegrationTest
before do
@item = Factory.create(:item)
end
describe "items that are viewable by this user" do
it "responds with good json" do
get "/api/items.json"
response.success?.must_equal true
body.must_equal Item.all.to_json
items = JSON.parse(response.body)
items.any?{|x| x["name"] == @item.name}.must_equal true
end
end
end
spec / spec_helper.rb
ENV["RAILS_ENV"] = "test"
require File.expand_path('../../config/environment', __FILE__)
gem 'minitest'
require 'minitest/autorun'
require 'action_controller/test_case'
require 'capybara/rails'
require 'rails/test_help'
require 'miniskirt'
require 'factories'
require 'mocha'
# Support files
Dir["#{File.expand_path(File.dirname(__FILE__))}/support/*.rb"].each do |file|
require file
end
spec / factorys / item.rb
Factory.define:item do | x |
x.name {"Foo"}
終わり
app / controllers / api / base_controller.rb
class Api::BaseController < ActionController::Base
respond_to :json
end
app / controllers / api / items_controller.rb
class Api::ItemsController < Api::BaseController
def index
respond_with(Item.all)
end
end
config / routers.rb
MyApp::Application.routes.draw do
namespace :api do
resources :items
end
end
Gemfile
グループ:開発、:テストを行う
gem'capybara'#Webサイトのユーザーをシミュレートする統合テストツール。
gem'capybara_minitest_spec'#MiniTest::SpecはCapybaraノードマッチャーに期待します。
gem'mocha'#Rubyのテストダブル用のモックおよびスタブライブラリ。
gem'minitest'、'> = 3'#RubyのコアTDD、BDD、モック、およびベンチマーク。
gem'minitest-capybara'#Capybaraドライバーの切り替えパラメーターをminitest/specに追加します。
gem'minitest-matchers'#ミニテスト用のRSpec/Shouldaスタイルのマッチャー。
gem'minitest-metadata'#メタデータのキーと値のペアでテストに注釈を付けます。
gem'minitest-spec-rails'#Rails3のMiniTest::Specサポートをドロップします。
gem'ミニスカート'#ミニテストで行くファクトリークリエーター。
gem'ruby-prof'#ネイティブCコードを使用したRuby用の高速コードプロファイラー。
終わり