Я в настоящее время тестирует этот класс в Sinatra/DataMapperrspec/datamapper - как мне сказать rspec ожидать ошибку?
class Score
include DataMapper::Resource
property :score, Integer
property :created_at, DateTime, :default => DateTime.now, :lazy => [:show]
property :updated_at, DateTime, :default => DateTime.now, :lazy => [:show]
belongs_to :pageant, :key => true
belongs_to :candidate, :key => true
belongs_to :category, :key => true
belongs_to :judge, :key => true
end
с этим RSpec тест
it 'that can be inserted by a judge if a pageant is active' do
score_count = Score.all.length
post '/score', @correct_score_data
Score.all.length.should eq score_count+1
end
it 'cannot be duplicated if it has been sent' do
score_count = Score.all.length
post '/score', @correct_score_data
Score.all.length.should eq score_count
end
в основном то, что должно произойти в том, что судья может отправить только оценку для определенной категории + кандидат + конкурс, один раз, после чего я должен отрицать следующие баллы. Теперь, когда я запускаю это, я получаю IntegrityError (которого я ожидаю). Как сообщить rspec, что я «ожидаю увидеть эту ошибку»? Вы, ребята, можете критиковать мой код, я все еще учусь все это вместе
Это будет полезно: http://stackoverflow.com/questions/1722749/how-to-use-rspecs-should-raise-with-any-kind- of-exception – cortex