Код модульного тестирования с WeakReference

Я не создавал фреймворк, но мне нужно написать тест для него. Сценарий...

  • Он использует WeakReference для хранения объекта, есть базовый метод, который я вызываю для назначения ему объекта (BaseClass.Register (weakObject))
  • Я могу получить этот объект через метод (BaseClass.GetObject ())
  • Тестирование... Сначала я должен был зарегистрировать свой макет (BaseClass.Register (mockWeak.Object)).

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

Могу ли я что-то сделать, чтобы GC не собирал мой объект WeakReference?

ПРИМЕЧАНИЕ: Никакие изменения не должны быть сделаны в платформе (BaseClass), только в моем тестовом классе

1 ответ

Решение

Извините, я нашел ответ на этот вопрос... Во время тестирования вы должны использовать...

GC.KeepAlive(weakObject)

Полная ссылка здесь.

http://defragdev.com/blog/?p=129

Другие вопросы по тегам