2012-06-05 5 views
3

У меня есть единичный тест, который содержит огромные данные, которые необходимо сравнить с реальным пользовательским объектом. Поэтому я должен создать ожидаемый пользовательский объект и заполнить его огромными данными, теперь я жестко кодирую ожидаемый пользовательский объект в коде. Существует сценарий, в котором у меня есть тест с differenct набором данных в качестве ввода для метода, который я тестирую. Заменяя набор данных, я должен получить относительный вывод, который будет фактическим (огромные данные). Существует ли какая-либо передовая практика для вышеупомянутого сценария, отличная от ожидаемых значений жесткого кодирования в коде? (что-то вроде XML или CSV).Наилучшая практика для генерации данных тестовых данных

+0

Часто полезно опубликовать образец кода того, что вы делаете, чтобы люди могли дать вам конкретную обратную связь ... – Scrappydog

ответ

0

Вы можете создать код, который будет сериализовать объект, используя XmlSerializer.

Этот код необходимо вызвать, когда приложение запущено, и у вас есть правильный объект в памяти.

Сохраните XML в файл и постройте объект в тесте из XML.

Возможно, у вас есть несколько файлов XML, которые могут охватывать различные сценарии.

В моем приложении у меня был код, который импортирует данные из внешнего webservice. Я создал несколько XML для объектов ответа службы (они были огромные) и использовать их для проверки моей логики разбора.

Обновление: Этот трюк работает только для объектов Entities. Вы не можете сериализовать/десериализовать класс, который работает с файлами или базой данных.

Здесь вы найдете образец кода. http://www.jonasjohn.de/snippets/csharp/xmlserializer-example.htm

+0

Можете ли вы выслать мне образец того, что делает ур? Он похож на то, что я реализую. – user1432798

+0

[xmlserializer-example] (http://www.jonasjohn.de/snippets/csharp/xmlserializer-example.htm) SerializerObj.Serialize следует вызывать в вашем производственном коде при создании хорошего объекта и TestClass LoadedObj = (TestClass) SerializerObj .Deserialize (ReadFileStream); в модульном тесте для подготовки данных. –

Смежные вопросы