Ошибка Rspec Postgres - PullRequest
       7

Ошибка Rspec Postgres

1 голос
/ 23 июня 2010

Позвольте мне в предисловии сказать, что я новичок и в TDD, и в Ruby on Rails.

Я использую Rspec для выполнения модульного тестирования моего уровня данных и для гарантии того, что моя база данных отклоняет недопустимыеinput.

Мой код rspec выглядит следующим образом:

it "should fail at saving without name" do
  @my_data.attributes = valid_my_data_attributes.except(:name)
  @my_data.save_with_validation( false ).should be_false
end

Моя база данных (Postgres) правильно отклоняет данные, но вместо возврата false выдает ошибку.Как бы я правильно уловил эту ошибку и прошел тест?

Спасибо!

1 Ответ

1 голос
/ 23 июня 2010

Предположим, ваша модель выглядит следующим образом:

class Customer
  validates_presence_of :name, :other_attribute
end

В вашей спецификации вы можете убедиться, что в модели есть ошибки по определенному атрибуту

it "should require name" do
  create_customer(:name => nil).should have(1).errors_on(:name)
end

it "should create a valid customer" do
  create_customer.should be_valid
end

# factory method
def create_customer(attributes = {})
   Customer.create({:name => 'foo', :other_attribute => 'foo'}.merge(attributes))
end
...