KING_U3D学习之Unity Test Tools(一)_官方例子解析

Unity Test Tools是Unity3D自带的一个免费测试插件,你可以在Asset store下载它,下载地址:https://www.assetstore.unity3d.com/en/#!/content/13802,然后导入,完成后菜单项会有Unity Test Tools项,如下图所示,

clip_image004

clip_image006


完成了插件的导入,我们就可以对项目的功能模块进行断言检查,集成测试,单元测试,甚至可以在不同平台上运行测试样本。


下面利用Unity官方的例子分别说说这几种功能:


一、断言检查

断言检查是 UnityTestTools 的核心功能。我们能够在GameObject上添加Assertion Component来使用这个功能。
在导入插件后,打开UnityTestTools/Examples/AssertionExample中的项目文件。我们能发现在场景中的两个BouncingSphere都挂载了Assertion Component:

比较的数值类型在左上设置,触发比较动作的时间在右上设置。这里需要做的比较是:当球碰撞平台,检查它是否会反弹。所以,比较的对象是BouncingSphere的刚体向量,比较的行为是NotEqual,比较的误差精度是0.001,比较的类型是与常量0进行比较。

另外,在菜单Unity Test Tools->Assert Explorer中,可以看到整个场景中的检查点。通过它,我们也可以做些快速更改。


二、集成测试(整合测试)

整合测试可以运行场景中的测试点,并返回结果。它是对Assertion Component的整合。我们打开Unity Test Tools/Examples/IntegrationTestsFrameworkeExamples中的ExampleIntegrationTests.unity。点击Unity Test Tools->Integration Test Runner后,会出现一个Integration Test窗口。窗口中的每一项是一个测试点。

点击测试点就会切换到测试项,可以根据这些例子学习如何使用集成测试。

在Test1中的平台上,挂了一个Call Testing,这个组件可以设置监听某个函数的调用。如果它被调用则返回Method To Call中设定的结果。After Frames 与 After Seconds被用来设置 CallAfterFrame 与 CallAfterSecond 这两个函数触发时刻。我认为它们是用来判断GameObject是否被disable或destroy。
Test2 是测试限定时间内是否返回了pass,否则就判定为失败。
Test3 是Call Testing的Fail测试。
Test4 是测试Ignored标志,当被忽略时,测试点不会执行。
Test With Assertions Fails判断对象被绘制,以及两个gameObject位置是否相同。
Test throwing exception监听对象扔出的异常。如果收到指定的异常,可以标记结果为测试成功。
CodeBasedAssertionExample是使用代码动态创建一个AssertionComponent。
DynamicIntegrationTest是使用代码动态创建一个测试点。
这些例子基本包括了Integration Test的使用方法。在这个文件夹中的AngryBotsTests是一个实际的测试场景,你有兴趣可以研究它。通常来说,这些测试要单独创建一个场景。点击Integration Test窗口中的播放按钮,即可运行测试点。


三、单元测试

单元测试需要将代码文件放置在Editor中。它使用的是NUnit测试框架。使用方法可以参考Unity Test Tools/Examples/UnitTestExample/Editor/SampleTests。在单元测试编写完成之后,点击Unity Test Tools->Unity Test Runner可以看到单元测试的窗口。由于在Editor文件夹中,单元测试的测试点不会受到场景的影响。点击运行可以看到测试结果。

总体上说,应该多使用整合测试。因为整合测试可以更真实的模拟实际情况。另外通过Platform Runner,可以将整合测试打包,运行在所需的平台上。这对于不同平台的测试也非常有价值。

参考:

http://imgtec.eetrend.com/blog/4143

http://www.xifarm.com/csharp_learnunity3d_abc_9_test/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值