Как специфицировать validates_uniqueness_of в Rspec? - PullRequest
5 голосов
/ 11 марта 2011

Как это сделать?Не удалось найти примеры в Интернете ... (используя rspec 2.5.0 & rails 3.0.5)

Ответы [ 3 ]

10 голосов
/ 11 марта 2011
6 голосов
/ 01 апреля 2011
before(:each) do
  @attr = { :bar => "foobar" }
end

it "should reject duplicate bar" do
  Foo.create!(@attr)
  duplicate_bar = Foo.new(@attr)
  duplicate_bar.should_not be_valid
end
0 голосов
/ 11 марта 2011

Не уверен, что это именно то, что вы ищете, но вы можете проверить сообщения об ошибках после save или update

@widget.save
#untested, but this should be close
@widget.errors.full_messages.include?("validation message you are looking for").should be true

Но, честно говоря, это, вероятно, не то, что вам нужно тестировать в своих модульных тестах (если вы их там размещаете). Вы в основном дублируете модульные тесты, которые Rails уже сделал для вас. Было бы более целесообразно проверить наличие сообщения об ошибке в представлении в тесте интеграции огурца.

...