SlideShare a Scribd company logo
RuntimeUnitTestToolkit for Unity
Work
http://grani.jp/
Unity
Private
http://neue.cc/
@neuecc
https://github.com/neuecc/UniRx
UnitTest
MSTest or xUnit.net
xUnit.net
NUnit
UIはVisual Studioで
より多機能
NUnitベースのが標準にのったね!
が、しかし
IL2CPPで動かしたいじゃろ?
RuntimeUnitTestToolkit
Demo…
RuntimeUnitTestToolkit for Unity
// make unit test on plain C# class
public class SampleGroup
{
// all public methods are automatically registered in test group
public void SumTest()
{
var x = int.Parse("100");
var y = int.Parse("200");
// using RuntimeUnitTestToolkit;
// 'Is' is Assertion method, same as Assert(actual, expected)
(x + y).Is(300);
}
}
public class SampleGroup
{
// return type 'IEnumerator' is marked as async test method
public IEnumerator AsyncTest()
{
var testObject = new GameObject("Test");
// wait asynchronous coroutine(UniRx coroutine runnner)
yield return MainThreadDispatcher.StartCoroutine(MoveToRight(testObject));
// assrtion
testObject.transform.position.x.Is(60);
GameObject.Destroy(testObject);
}
IEnumerator MoveToRight(GameObject o)
{
for (int i = 0; i < 60; i++)
{
var p = o.transform.position;
p.x += 1;
o.transform.position = p;
yield return null;
}
}
public static class UnitTestLoader
{
[RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.BeforeSceneLoad)]
public static void Register()
{
// setup created test class to RegisterAllMethods<T>
UnitTest.RegisterAllMethods<SampleGroup>();
// and add other classes
}
}
Conclusion
既に大量に投下済み
Released in GitHub
https://github.com/neuecc/RuntimeUnitTestToolkit
実行時テストにフォーカス
非同期テスト
実機転送テスト
実行時テストにフォーカス
非同期テスト
実機転送テスト

More Related Content

RuntimeUnitTestToolkit for Unity