Тестирование поведения цикла с использованием Rspec - PullRequest
1 голос
/ 29 апреля 2011

код:

def self.api_create(params)
  user_image = UserImage.new(params)
  begin
    user_image.uid = UniqueId.generate[0..7]
  end 

  while not(UserImage.find_all_by_uid(user_image.uid).empty?)
    return user_image
  end
end

unique_id является первичным ключом UserImage

Как можно проверить следующий контрольный пример?

it "should create a new unique id if the one generated is already in use." do

end

1 Ответ

1 голос
/ 29 апреля 2011
params = ...
user_image = UserImage.api_create(params)
UserImage.find_all_by_uid(user_image.id).should be_empty

после комментария

что по этому поводу

# first call returns 1, second 2
UserImage.stub!(:find_all_by_uid).and_return(1,2) 

# first call returns 1 so that the method needs another call
UniqueId.stub!(:generate).and_return(1,3)

# let it work (whatever params is)
user_image = UserImage.api_create(params)

# the user id should be 3
user_image.id.should == 3
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...