14. Проверка сохранности состояния
Цели обучения
В этом разделе мы рассмотрим, как позволить переменным и информации в тестах пережить перезагрузку домена с помощью серийного кодирования.
Введение и мотивация
При перезагрузке домена все скрипты загружаются заново. Это означает, что большая часть данных в членах тестового класса теряется. Иногда это проблема: часть сведений может быть нужно сохранить и после перезагрузки домена.
Решением этой проблемы является сериализация. Если вы добавите атрибут [SerializeField] к соответствующему полю, то оно сохранит свое значение. Обратите внимание, что в Unity есть некоторые ограничения для сериализации, см. Unity Сериализация.
2010 год
Пример 14_PreserveTestState содержит решение предыдущего задания с одним отличием: теперь именем файла служит GUID.
Это означает, что для правильной очистки метод TearDown должен знать имя файла.
В настоящее время, при запуске теста в первый раз, TearDown не сработает, потому что ему не дано имя файла. При последующих запусках теста он не сработает из-за дублирования файлов с тем же скриптом C# в нем.
Задача состоит в том, чтобы исправить эту потерю информации о названии файла с помощью сериализации.
Решение
Решение простое. Просто добавьте атрибут [SerializeField] в поле имени файла. Решение включено в качестве примера 14_PreserveTestState_Solution.