2016-01-26 3 views
0

Я обновил свой проект Rails использовать Shoulda Matchers 3,0uniqueness_of терпит неудачу после обновления Shoulda matchers

Однако тестовая модель, которая проверяет уникальность права собственности теперь неудачу:

app/models/product.rb 

it { is_expected.to validate_uniqueness_of(:title) } 

spec/models/product_spec.rb 

it { is_expected.to validate_uniqueness_of(:title) } 

сообщение об ошибке для испытания на отказ:

Product should validate that :title is case-sensitively unique 
Failure/Error: it { is_expected.to validate_uniqueness_of(:title) } 
    Product did not properly validate that :title is case-sensitively 
    unique. 
    The record you provided could not be created, as it failed with the 
    following validation errors: 

    * title: ["can't be blank"] 
    * description: ["can't be blank"] 
# ./spec/models/product_spec.rb:6:in `block (2 levels) in <top (required)>' 

У кого-нибудь есть опыт работы с этой проблемой?

спасибо за вашу помощь,

Энтони

ответ

2

Там же известная проблема - https://github.com/thoughtbot/shoulda-matchers/issues/880 - по-видимому, фиксируется в мастере.

Ожидая этого исправления, вы можете сейчас заблокировать версию 3.0.1, которая должна работать.

Уникальность согласовани сделали изменения в 3.0.x по умолчанию чувствительно к регистру, чтобы соответствовать по умолчанию рельсов валидатора, поэтому если у вас есть рельсы, установленные валидации к случаю нечувствительны вам придется обновить согласовани вызовов

is_expected.to validate_uniqueness_of(:whatever_field).case_insensitive 
+0

спасибо Том. Я догадаюсь, что я дождусь появления новой версии Asset Attack – Toontje

+0

Обновлено с подробностями о том, что вам нужно сделать, если вы получите ошибку в 3.0.1 тоже –

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