Недавно я столкнулся с проблемой, когда вы не можете создать экземпляр MonoBehaviour
s в модульных тестах, поэтому я прохожу процесс перемещения всего моего кода, не связанного с Unity (код, который не имеет доступа ни к каким MonoBehaviour
полям / методам), в отдельные классы модели, которые затем используются в соответствующем MonoBehaviour
классе. Однако во всех примерах Unity, которые я видел, весь код связан с данным игровым объектом в MonoBehaviour
классе. Например, орк в игре имеет свой код в классе Orc
, производном от MonoBehaviour
. Так что мне трудно назвать свои классы, когда я разделяю единственный Orc
MonoBehaviour
класс на модель орка и орка MonoBehaviour
. Есть ли рекомендации по передовой практике, которым нужно следовать при именовании MonoBehaviour
классов по сравнению с именованием соответствующего класса модели?
Именование моделей против MonoBehaviours
Ответы (1)
Игры, как и любые другие приложения, могут запускать тесты. Если бы тестирование в играх было бесполезным, Unity не тратила бы часы на разработку инструмента.
Как и любые другие приложения, некоторые части не могут быть протестированы, как ввод, который полагается на фреймворк. В Unity все методы движка, такие как Update, Collision и т. Д., Нельзя протестировать, но их можно подделать.
Другой случай в Unity - MonoBehaviour, но вы можете легко обойти это, следуя этому сообщению в блоге:
http://blogs.unity3d.com/2014/07/28/unit-testing-at-the-speed-of-light-with-unity-test-tools/
По сути, класс MB получает все действия и обратные вызовы, связанные с Unity. Логика, которую необходимо протестировать, находится в настраиваемом классе.
Что касается именования, вы можете использовать XXXXController (МБ) и XXXContainer (не МБ).
В своем тесте вы сосредотачиваетесь на тестировании XXXContainer, который содержит всю логику.
Orc
класс, для которого я пишу тесты. Но в книгах / примерах Unity, которые я видел, будет скрипт орка (полученный изMonoBehaviour
), прикрепленный к орку в сцене. Я ищу рекомендацию о том, как назвать этиMonoBehaviour
сценарии, поскольку сценарий будет сценарием орков, ноOrc
уже является именем класса модели. - person Ben Rubin   schedule 16.07.2016