У меня есть немного кода, который в основном отображает последние x (переменная, но допустим, x здесь 20) обновлений, сделанных в данной таблице. В одном из модульных тестов у меня есть этот фрагмент:
EditedItem.push_to_queue(hiddennow)
#create some new entries and save them
20.times{ EditedItem.push_to_queue(random_item) }
Queue.get_entries.each{|entry| assert_not_equal too_far_down, entry}
Может быть, а может и не быть красивым, но это дает понять смысл Объект hiddennow был помещен в очередь слишком далеко и больше не должен возвращаться при вызове get_entries.
#this works
SearchObject.find(:all, :order => "id desc")
#this does not, unless the 20.times loop has sleep(1) or something
SearchObject.find(:all, :order => "created_at desc")
Это немного упрощено, но похоже, что цикл 20.times добавляет вещи настолько быстро, что не может различить порядок по выражению в create_at. Мои вопросы, я делаю что-то в корне неправильно? Если нет, то какой подход лучше написать тест по этим направлениям?