Как я могу использовать начальные данные на заводе? - PullRequest
0 голосов
/ 10 июня 2011

Я пишу приложение, которое позволяет пользователям проходить онлайн-тестирование.Тест состоит из 2 наборов из 18 вопросов, которые рандомизированы в поле зрения.Я пытаюсь написать тесты, чтобы убедиться, что я получаю правильные 18 вопросов по каждой части.Я хотел бы создать фабрику, которая будет поражать БД и загружать в случайной последовательности вопросов.есть идеи как это сделать?Я могу жестко кодировать текст, но на самом деле я хочу протестировать начальные данные и высушить мой код, не повторяя вопросы в моих seed.rb и factory.rb.

Вот то, что я сделал, это сложнозакодированный

Factory.define :test do |test|
    test.association :user
end

Factory.define :question do |question|
    question.phrase "2+2"
    question.answer "4"
    question.association :test
end

Затем в моих тестах я могу написать что-то вроде:

@test = Factory(:test, :user => @user)
@question = Factory(:question, :test => @test)

Есть идеи, как это сделать?

Спасибо!

1 Ответ

3 голосов
/ 12 июня 2011

Как насчет того, если в верхней части вашего spec / factories.rb вы добавите следующую строку:

load(Rails.root.join("db", "seeds.rb"))

Если вы используете Rails 3.1, вы можете использовать следующую строку.

Rails.application.load_seed

Я получил ответ от: Могу ли я каким-то образом выполнить мой файл db / seed.rb из моего приложения rails?

...