RailsによるアジャイルWebアプリケーション開発

第12章

p.158まで。

  • spec/models/order_spec.rb
require 'rails_helper'

RSpec.describe Order, type: :model do
  # :
  describe "#add_line_items_from_cart" do
    before do
      @cart = create(:cart, line_items: create_list(:line_item, 3))
      @order = create(:order)
      @order.add_line_items_from_cart @cart
      @cart.reload
    end

    it { expect(@order.line_items.count).to eq 3 }
    it { expect(@cart.line_items.count).to eq 0 }
  end
end
  • spec/controllers/orders_controller_spec.rb
require 'rails_helper'

RSpec.describe OrdersController, type: :controller do
  # :
  describe 'POST create' do
    it 'should create order' do
      expect {
        post :create, order: attributes_for(:order)
      }.to change(Order, :count).by(1)
    end

    it 'redirects to store#index' do
      post :create, order: attributes_for(:order)
      expect(response).to redirect_to store_path
    end
  end
end

f:id:yossk:20150114231120j:plain
f:id:yossk:20150114231129j:plain