Buffer icon Проекты

Unit тесты в Unity

Что такое юнит-тестирование, зачем оно нужно, стоит ли покрывать весь код тестами — можно узнать из этой хорошей статьи. Я лучше сразу скажу, как создать тест в Unity. Открываем пункт меню Window → Editor Tests Runner. Если у вас ещё нет тестов, то увидите окно, как на скриншоте, если нет этого пункта меню — значит у вас старая версия Unity :)

При нажатии на кнопку — создастся пример теста. Все!
На самом деле — нет.

using UnityEngine;
using UnityEditor;
using NUnit.Framework;

public class NewEditorTest {

	[Test]
	public void EditorTest() {
		//Arrange
		var gameObject = new GameObject();

		//Act
		//Try to rename the GameObject
		var newGameObjectName = "My game object";
		gameObject.name = newGameObjectName;

		//Assert
		//The object has a new name
		Assert.AreEqual(newGameObjectName, gameObject.name);
	}
}

Как видно, у метода есть атрибут [Test], который и указывает, что это будет тестом. Если создать несколько тестов и запустить их через тот же Editor Tests Runner, можно увидеть какие тесты прошли, а какие нет:

В Unity для тестирования используется опенсорсная библиотека NUnit, которая предназначена для работы с .Net языками, в том числе и с C#. На Github есть обширная документация, где расписаны все атрибуты которые можно использовать.

Кроме того, есть специальные Unity-атрибуты, с помощью которых можно тестировать корутины, запускать тесты в режимах редактирования или игры, тестировать на определенных платформах. Доки и примеры есть на сайте Unity.

Также, у Unity есть ещё специальный ассет для тестирования — Unity Test Tools, но как я понял они его перестали поддерживать.

Поделиться
Отправить
Запинить
Отправить
Популярное