rspec-rails

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/m0_38027358/article/details/88747379

 book

book_chapters

~/project/spec

~/project/spec/factories

books.rb

FactoryBot.define do
  factory :book do
    name { Faker::Book.title }
    author { Faker::Book.author }
  end
end
book_chapters.rb

FactoryBot.define do
  factory :book_chapter do
    name { Faker::String.random(10) }
    content { Faker::String.random(50) }
    book
  end
end

 ~/project/spec/controllers/api/v1

books_controller_spec.rb

require 'rails_helper'
  
RSpec.describe Api::V1::BooksController, type: :controller do
  # before(:example) do
    # @user = create(:user)
    # merge_authorition_headers!(@user)
  # end

  it 'index' do
    get :index

    expect(response).to have_http_status(:success)
  end

  it 'show' do
    book = create(:book)
    get :show, params: { id: book.id.to_s }

    expect(response).to have_http_status(:success)
  end
end
book_chapters_controller_spec.rb

require 'rails_helper'
  
RSpec.describe Api::V1::BookChaptersController, type: :controller do
  # before(:example) do
    # @user = create(:user)
    # merge_authorition_headers!(@user)
  # end

  it 'index' do
    book_chapter = create(:book_chapter)
    get :index, params: { book_id: book_chapter.book.id.to_s }

    expect(response).to have_http_status(:success)
  end

  # it 'index' do
  #   book = create(:book)
  #   create(:book_chapter, book: book)
  #   get :index, params: { book_id: book.id.to_s }

  #   expect(response).to have_http_status(:success)
  # end

  it 'show' do
    book_chapter = create(:book_chapter)
    get :show, params: { id: book_chapter.id.to_s }

    expect(response).to have_http_status(:success)
  end
end

rspec spec/controllers/api/v1/books_controller_spec.rb

rspec spec/controllers/api/v1/book_chapters_controller_spec.rb

猜你喜欢

转载自blog.csdn.net/m0_38027358/article/details/88747379