Problem z testami jednostkowymi i validates_inclusion_of

Mam problem z unit testami i validates_inclusion_of. Validates_inclusion_of sprawdza,czy category_id podane w formularzu znajduje się w bazie danych z kategoriami. W modelu mam takie linijki:

class Item < ActiveRecord::Base ... validates_inclusion_of :category_id, :in => Category.all.map { |c| c.id } ... end
Test poniżej wypisuje, że category_id nie zgadza się z tym, który jest w bazie. Zrobiłem sobie sprawdzenie i w before_validation wypisałem wszystko co jest w bazie danych. Wychodzi na to, że w bazie są dwa rekordy, które wstawiłem ręcznie, jeden z nich to ten, które w teście jest opisany jako categories(:one).

Nie wiem co jest, test zwraca błąd walidacji i błędny category_id mimo, że ten przekazany w konstruktorze jest identyczy z categories(:one)

class ItemTest < ActiveSupport::TestCase fixtures :items, :users, :categories test "should create item" do assert !Category.all.empty? item = Item.new(:user => users(:tom), :title => 'a', :category_id => categories(:one).id) assert item.valid?, item.inspect # błąd walidacji, wyrzuca obiekt, z wartoscia category_id przekazaną wyżej assert !item.errors.invalid?(:user) assert !item.errors.invalid?(:title) assert !item.errors.invalid?(:category_id) # błąd end end
Dla sprawdzenia wywaliłem z modelu validates_inclusion_of i sprawdziłem jak się zachowa test. Test przeszedł poprawnie, więc wina leży w tejże linijce. Czy to jest możliwe, że w momencie, gdy wywoływane jest item.valid? - baza jest pusta?

Nie wiem co jest, domyślam się, że to jakiś prosty błąd i pewnie ktoś będzie wiedział co jest nie tak. Bardzo proszę o pomoc.