2015-12-03 4 views
2

Возможно ли размораживание для типа объекта после замораживания?AutoFixture: Можете ли вы разморозить тип данных?

Итак, если у меня есть объект Назначение, которое использует DateTime, есть ли способ сделать что-то вроде этого?

var time = fixture.Freeze<DateTime>(); 
IEnumerable<ClientAppointment> appointments = fixture.CreateMany < ClientAppointment>(); 
fixture.Unfreeze<ClientAppointment>(); 

Для того чтобы я мог генерировать новые объекты с различной DateTime, введенной в них?

ответ

4

Невозможно зафиксировать стабильный способ размораживания типа в AutoFixture.

Вместо этого изменить порядок, в котором вы создаете объекты, так что

var time = fixture.Freeze<DateTime>(); 
IEnumerable<ClientAppointment> appointments = fixture.CreateMany < ClientAppointment>(); 

это последнее, что вы делаете.

+0

К сожалению, это был просто упрощенный пример, который я использовал, чтобы объяснить, что я пытаюсь сделать, но спасибо. Приятно знать, что я не просто пропустил вещи. – Riplikash

+0

@Riplikash Что вы * на самом деле пытаетесь? Рассмотрите описание актуальной проблемы в новом вопросе, и я с удовольствием посмотрю. –

+0

Все в порядке. Это часть более крупной тестовой структуры, и, как здесь, я чувствую, что для этого потребуется слишком много контекста. У нас просто есть множество модулей настройки генерации данных, и замораживание может упростить некоторые из них. Но эффект будет также просачиваться в другие модули и в окончательный модульный тест. Поэтому на данный момент правило гласит: «Не используйте замораживание в модуле». Я просто пытался найти способ замораживания в модуле, но изолировать эффект от объема модуля. Я не думаю, что вопрос SO действительно является подходящим форумом для такой дискуссии, но еще раз спасибо за вашу помощь. – Riplikash

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