Приспособления Rails, кажется, добавляют дополнительные неожиданные данные - PullRequest
1 голос
/ 08 октября 2009

все. У меня есть CSV-файл с динамическими фиксаторами, который генерирует предсказуемые данные для таблицы, чтобы мои модульные тесты справились со своими задачами. Он работает должным образом и заполняет таблицу данными, но когда я проверяю таблицу после выполнения тестов, я вижу ряд дополнительных строк «пустых» данных (все нули и т. Д.). Они не создаются прибором, а модульные тесты доступны только для чтения, просто делают выборки, поэтому я не могу винить код. Похоже, что во время настройки приборов не ведется регистрация, поэтому я не вижу, когда вставляются «пустые» данные. Кто-нибудь когда-либо сталкивался с этим раньше, или есть какие-либо идеи о том, как регистрировать или иным образом видеть, что делает установка прибора, чтобы отследить источник пустых данных?

Ответы [ 2 ]

0 голосов
/ 09 октября 2009

Я обнаружил, в чем проблема, хотя и не был точным способом ее предотвращения. Я помещал ERB в CSV-файл прибора, который работал нормально, но из-за того, как он анализировался и обрабатывался, он приводил к тому, что пустые строки помещались в результирующий вывод CSV. Светильники, кажется, не очень хорошо справляются с этим, и в результате он вставляет пустые строки в таблицу. Я не мог предотвратить размещение пустых строк в выходном CSV, потому что по какой-то причине <% rubycode -%> не работает - наличие закрывающей черты вызвало ошибки синтаксического анализа ERB. Не уверен почему.

В любом случае, возможный обходной путь - переключиться на YML вместо CSV. Он отлично переносит пробелы, и в таблицу больше не вставляются пустые строки.

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

0 голосов
/ 08 октября 2009

Вы можете включить ведение журнала ActiveRecord (поместите ActiveRecord::Base.logger = Logger.new(STDOUT) в файл test / test_helper.rb).

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

...