Rails, Cucumber: создайте объект и его ассоциации

Я использую mongoid, машинист 2 и мариновать. Но я думаю, что этот вопрос более общий.

У меня есть модель учетной записи:

class Account
  include Mongoid::Document
  include Mongoid::Timestamps

  referenced_in   :user
end

и Пользователь:

class User
  include Mongoid::Document
  include Mongoid::Timestamps

  references_one :account
end

У меня есть следующий сценарий (я установил ассоциацию reference_one):

  Scenario: Client views his account
    Given a user with id: "4ceede9b5e6f991aef000007"
    And the following accounts exist:
      | user_id                        |
      |  4ceede9b5e6f991aef000007      |
         .....

Я думаю, что это не очень хорошая идея использовать идентификаторы таким образом. Как лучше всего создавать объекты с ассоциациями? Я бы хорошо, если рассол. например, может помочь.


person petRUShka    schedule 25.11.2010    source источник


Ответы (1)


Вы можете настроить чертежи следующим образом:

User.blueprint do
  name
  # ...
end

Account.blueprint do
  user 
  # ...
end

А внутри огурец:

Given the following accounts exist
  | user  |
  | Fred  | 
  | Ethel |

Если pickle не обрабатывает описанный выше шаг, вы можете создать собственное определение шага следующим образом:

Given /^the following accounts:$/ do |class_name, table|
  table.hashes.each do |attributes|
    u = User.make! :name => attributes[:user]
    Account.make! :user => u
  end
end
person bowsersenior    schedule 26.11.2010