2015-05-07 3 views
-1

Фабрики данные также определяеткак проверить рельсы полного приложения с помощью RSpec теста

Моего кода в controller_spec.rb

describe "POST create" do 
    context "with valid attributes" do 
    it "creates a new corporate" do 
     post :create, corporate: FactoryGirl.attributes_for(:corporate) 
     expect(Corporate.count).to eq(1) 
    end 
    it "redirects to the new corporate" do 
     post :create, corporate: FactoryGirl.attributes_for(:corporate) 
     response.should redirect_to Corporate.last 
    end 
    end 
end 

Error 
CorporateController POST create with valid attributes redirects to the new corporate 
    Failure/Error: post :create, corporate: FactoryGirl.attributes_for(:corporate) 
    ActiveRecord::RecordNotUnique: 
     Mysql2::Error: Duplicate entry '7' for key 'PRIMARY': INSERT INTO `corporates` (`id`, `name`, `numberofemployees`, `address`, `phone`, `pending_moderation`, `created_at`, `updated_at`) VALUES (7, 'sumittest', 5, 'lkjgkklgslkjlk', '99999999999', 1, '2015-05-07 12:56:59.816181', '2015-05-07 12:56:59.816181') 
+1

Ваш вопрос не читается. –

+2

@AndyWaite вы могли бы отредактировать сообщение, чтобы добавить правильное форматирование – Fer

ответ

0

Как-то вы дублирующие идентификаторы.

Если вы устанавливаете идентификатор на заводе, просто удалите его, база данных должна позаботиться об этом.

Другим решением может быть воссоздание тестовой базы данных, но, возможно, вы снова получите эту проблему.

Если вы отлаживаете при запуске тестов, не выходите с quit, или много мусора будет храниться в базе данных, вместо этого используйте continue и дайте транзакции отбросить.

Смежные вопросы