Хорошо, я понял это. Назовите меня как еще одну жертву хитросплетений носорога. Подобные вещи заставляют меня перейти на более простую среду, может быть, я проверю MoQ.
Таким образом, ответ использует PartialMocks. Я кратко поиграл с генерацией частичного макета, но когда я запустил отладчик поверх него, я заметил, что свойства не были даже нулевыми, они выдавали странные исключения, поэтому я не выглядел намного глубже. Я использовал краткую форму типа AAA синтаксиса.
Оказывается, если я просто переведу макет в режим воспроизведения, тест работает - свойства используются как есть (как и должно быть с частичным макетом).
Так вот ответ:
[Test]
public void ShouldCreateParameterListInConstructor()
{
var mockRepository = new MockRepository();
var mock = mockRepository.PartialMock<DataCollectionWorkflow>();
using ( mockRepository.Record() )
{
}
using (mockRepository.Playback())
{
Assert.That(mock.Parameters, Is.Not.Null, "DataCollectionWorkflow base class didn't create new param collection");
}
}
Я понимаю, что это тест с отслеживанием состояния, но на самом деле это более простая прелюдия к некоторому поведенческому тестированию, которое включает в себя рассматриваемое свойство, поэтому я хотел, чтобы этот случай был предварительным условием. Надеюсь, это кому-нибудь поможет.