Вопрос о огурце / рассоле - PullRequest
       14

Вопрос о огурце / рассоле

1 голос
/ 22 января 2010

Я пытаюсь немного поближе познакомиться с Rails / ActiveRecord. Пытаясь сделать это, я пытаюсь использовать Cucumber, чтобы помочь с некоторыми тестами «обнаружения».

У меня есть следующее

Feature: Describing a task
  In order to work with tasks
  As a user
  I want to be able to know what makes up a task and to improve my understanding of ActiveRecord


Scenario: A task has certain core fields
  Given the following tasks exist
  | id | name      |
  | 1  | some task |
  And the following estimates exist
  | task_id | hours | explanation                           |
  | 1       | 8     | initial estimate                      |
  | 1       | 6     | better undertsanding of task          |
  | 1       | 16    | no control over inputs to create task |
  | 2       | 22    | for other task |

Then a task: "task" should exist with name: "some task" #this works
Then the estimate "estimate" should exist with explanation: "initial estimate" #this works
Then the estimate "estimate" should be one of task: "task"'s estimates #this works
Then the task "task" should have 3 estimates  #this one fails

EDIT

У меня нет пользовательских шагов - я пытаюсь использовать то, что выходит из коробки с огурцом и маринованными огурцами (только для того, чтобы избежать путаницы).

Модели

class Estimate < ActiveRecord::Base

  belongs_to :Task, :class_name => "Task", :foreign_key => "Task_id"

end

и

class Task < ActiveRecord::Base
  has_many :estimates
end

Может ли кто-нибудь указать мне правильное направление (или если мне нужно опубликовать больше кода)?

Спасибо

Джо

1 Ответ

0 голосов
/ 22 января 2010

Ваш оценочный класс может выглядеть так:

class Estimate ...
  belongs_to :task
end 

Он выведет имя таблицы и fk, и, если вы следовали идиомам базы данных rails, все должно работать.

Что касается ваших шагов, я никогда не использовал рассол, поэтому я не уверен, что с этим происходит, но если этот шаг не удался:

Then the task "task" should have 3 estimates  #this one fails

Это может быть связано с изменением, которое я описал выше (может быть, оно делает что-то странное с именем таблицы ??).

...