рельсы - как получить данные прибора из тестов - PullRequest
2 голосов
/ 27 августа 2009

Я посмотрел руководство по рельсам для тестирования , но я могу получить данные о приборах из моего теста. У меня есть приспособление:

one:
  pay_period: one
  employee: kent
  cpp: 50
  ei: 40
  tax: 100
  vacation_pay: 30

Тогда у меня есть тест в соответствии с ниже (где EmployeePayPeriod - модель)

require 'test_helper'
class EmployeePayPeriodTest < ActiveSupport::TestCase

  # Replace this with your real tests.
  test "Calculate wages under 80 hours correctly" do
    p = EmployeePayPeriod(:one)
    assert true
  end
end

Очевидно, что выше не работает. Я посмотрел на руководство. В руководстве он использует фрагмент кода, чтобы проиллюстрировать, как вы получаете данные прибора:

@user = users(:david).  

Похоже, что «пользователи» не являются моделью (потому что обычное соглашение состоит в том, что оно будет единственным и заглавным. Так откуда же берутся «пользователи»? меня? (Я пытался, но это не сработало).

Спасибо

Ответы [ 2 ]

6 голосов
/ 27 августа 2009

Устройство должно быть в файле .yml, имя которого соответствует имени таблицы (не имени модели).

Если имя таблицы для EmployeePayPeriod равно employee_pay_periods, то ваше устройство должно быть в test/fixtures/employee_pay_periods.yml, и у вас должен быть автоматически создан метод employee_pay_periods() для доступа к приборам.

Убедитесь, что ваши приборы действительно загружаются. Последние Rails добавят следующую строку в test / test_helper.rb:

fixtures :all

Это загружает все приборы перед каждым тестом. Убедитесь, что эта строка есть и не закомментирована.

3 голосов
/ 27 августа 2009

Я считаю, что пользователи - это соглашение, основанное на имени файла yml. В этом примере они имеют users.yml. Итак, чтобы ответить на ваш вопрос более прямо, попробуйте использовать любое имя вашего файла фиксации .yml.

Что-то, что может быть легче в долгосрочной перспективе, это что-то вроде FactoryGirl , Машинист или fixjour

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...