Как проверить области? - PullRequest
       21

Как проверить области?

17 голосов
/ 30 января 2011

пытался найти, но безуспешно. Просто интересно, как я могу тестировать области в 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 ]

24 голосов
/ 18 марта 2011

Дэвид Челимски (создатель 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

4 голосов
/ 30 января 2011

Я уверен, что есть более элегантное решение, но я всегда просто настраивал некоторые объекты, которые должны и не должны попадать в мои возможности.После вызова области я проверяю, что возвращаемый объект имеет объект, который должен, и не имеет объекта, которого он не должен.

Если что-нибудь, я надеюсь, что будут просвещены другими ответами.

...