Модульное тестирование в C #: как установить для Lazy <T>.ValueCreated значение false? - PullRequest
1 голос
/ 12 января 2011

По сути, у меня есть модульный тест, который получает одноэлементный экземпляр класса.Некоторые из моих тестов требовали, чтобы я издевался над этим синглтоном, поэтому, когда я делаю Foo.Instance, я получаю другой тип экземпляра.

Проблема в том, что мои проверки проходят индивидуально, но в целом не пройдены, потому что один тест мешаетс другим.

Я пытался сделать TestCleanup, где я установил: Foo_Accessor._instance = null;, но это не сработало.Что мне действительно нужно, так это Foo_Accessor._instance.IsValueCreated = false; (_instance - это Lazy).

Есть ли способ сбросить объект Lazy, о котором я не думал?

1 Ответ

5 голосов
/ 12 января 2011

Почему бы не сделать: Foo_Accessor._instance = new Lazy<Foo>(Something);

Убедитесь, что «что-то» точно такое же, как и ваш класс Foo.

...