Код модульного тестирования с WeakReference
Я не создавал фреймворк, но мне нужно написать тест для него. Сценарий...
- Он использует WeakReference для хранения объекта, есть базовый метод, который я вызываю для назначения ему объекта (BaseClass.Register (weakObject))
- Я могу получить этот объект через метод (BaseClass.GetObject ())
- Тестирование... Сначала я должен был зарегистрировать свой макет (BaseClass.Register (mockWeak.Object)).
При выполнении метода, основанного на зарегистрированном объекте, мой тест иногда дает сбой, потому что он был собран мусором до того, как я выполнил для него тест.
Могу ли я что-то сделать, чтобы GC не собирал мой объект WeakReference?
ПРИМЕЧАНИЕ: Никакие изменения не должны быть сделаны в платформе (BaseClass), только в моем тестовом классе
1 ответ
Решение
Извините, я нашел ответ на этот вопрос... Во время тестирования вы должны использовать...
GC.KeepAlive(weakObject)
Полная ссылка здесь.