Как проверить границы?
Пытался найти, но безуспешно. Просто интересно, как я мог протестировать прицелы в Rails 3.
Может быть, использовать rspec, musta или просто тестовый модуль.
Благодарю.
На самом деле, я пытаюсь таким образом, но это не полный тест, так как все еще нужно поставить метод order().
Область применения:
scope :recents_available, where(:available => true, :locked => false).order("created_at DESC")
describe Job, ":recents_available" do
it "should have the scope" do
Job.should respond_to(:recents_available)
end
it "should include recents jobs that are available and unlocked" do
@job = Factory(:job, :available => true, :locked => false )
Job.recents_available.should include(@job)
end
конец
2 ответа
Дэвид Челимски (создатель Rspec) предложил следующий пример в Rspec Google Group:
describe User, ".admins" do
it "includes users with admin flag" do
admin = User.create! :admin => true
User.admin.should include(admin)
end
it "excludes users without admin flag" do
non_admin = User.create! :admin => false
User.admin.should_not include(non_admin)
end
end
class User < ActiveRecord::Base
named_scope :admins, :conditions => {:admin => true}
end
Это явно не тот пример, что у вас, но он должен дать вам представление о том, как это сделать. Соответствующая тема для контекста находится здесь: http://groups.google.com/group/rspec/browse_thread/thread/6706c3f2cceef97f
Я уверен, что есть более элегантное решение, но я всегда просто настраивал некоторые объекты, которые должны и не должны попадать в мои возможности. После вызова области я проверяю, что возвращаемый объект имеет объект, который он должен, и не имеет объекта, который он не должен.
Во всяком случае, я надеюсь быть просвещенным другими ответами.