超牛链AI Logo

超牛链博客: 读书|骑行|笔记分享
user
老王不响
@关于博主
2015-01-25

C#程序员整理的Unity 3D笔记(九):Unity 3D测试浅析 4 mins read


Unity中的组件上的类,是不能new的,必须通过组件去获取,new出来的东西是null。

if (amainfo.nameHash == Animator.StringToHash("Base Layer.idle"))

{

      m_animator.SetBool("Run", true);

}

代码无法执行时,在navigation面板中点击Bake,如下图

必须为碰撞体添加碰撞组件,否则Physics.Raycast函数无法检测到

删除destory时的时间,否则产生的多线程会导致计数不准确!

Unity3D自带测试工具,只需要在Asset Store中下载,然后导入,完成后菜单项会有Unity Test Tools项(如下图),完成了插件的导入,就可以进行单元测试了。

Unity3D的单元测试和VS2010的单元测试很几乎一样,如果接触过VS的单元测试,使用Unity3D的单元测试会简单很多。

1. 新建‘Editor‘文件夹,在文件夹中建一个单元测试的类,如下图

2. 在测试类文件中添加需要的测试方法,基本和VS中的单元测试一样,如下图所示:

3. 完成测试类的新建,点击Unity Test Tools 菜单中的Unit Test Runner 就可以进行单元测试,如下图:

4. 点击进行单元测试菜单后,进入测试界面,点击开始测试按钮,可以看到我们新建的测试类以及包含需要测试的方法,当时绿色的对号时,表示测试通过,否则表示测试失败,如下图:

以上就是Unity3D单元测试运行的基本步骤,如果熟悉VS开发平台的话,就会发现和VS的单元测试几乎是完全一样的。

集成测试Integration

由于单元测试只能测试单独函数的逻辑,无法模拟真正的游戏运行场景,所以一般游戏场景的模拟还是要用到集成测试。Unity3D的集成测试会调用Unity的运行函数,逐个测试用例。相当于实际游戏运行环境。

集成测试分为动态集成测试和普通集成测试

1. 普通集成测试,如果要测试某个GameObject,需要添加下图2的脚本组件,在菜单中,添加完成后,可以对组件进行测试,运行,即可以看到结果。如下图:

图1

图2

每一项集成测试都需要通过断言的组件的判断,这种普通测试只是用于一些简单的测试,如坐标移动范围,是否需要可见等。

动态集成测试

新建测试 New Test ,在它之下创建一个GameObject,创建TestScript脚本绑定在GameObject。 如果在该场景名下,动态测试脚本会自动挂载到测试面板中。如下图:

新建一个.cs文件里,创建若干个测试类。再针对不同模块,分成不同测试场景,进行测试,即可。也能支持NGUI等许多插件。按钮响应事件利用反射强制调用一下。

2015-01-25
老王 加冕为王
老王,工作了19年的软件工程师、连续创业者、Blogger(since 2013),微软.net MVP获得者(2015~2016)、 Unity3D UVP获得者 (2017)。 曾任上市公司研发主管、知名外企Social Media Marketing 。 现专注于Instagram、SEO等海外社交媒体营销技术研究与实践。 四十而立的我,有2个可爱的宝宝,喜好骑行、读书、木工, 尤其喜好历史、科幻书籍。
友情链接
超牛链 260天前 2024年3月6日 15:16

感谢支持,沙发就给你,老朋友

最新文章

一路东北, 转眼二十年

一路东北, 转眼二十年了,最后一次回眸长春,是2004...

人道中年,悲欣交集

中年人的生活 各自欢乐, 又或一地鸡毛,简言之:【悲...

80后爱玩的PC游戏:红警、秦殇 —快乐呀。

记得非典—2003年那会,周末一到,大学宿舍里面,吃完...

超牛链AI:Ollama本地LLM LangChain RAG小试--算力为王

算力为王时代: CPU --> GPU

GPU这...

热门文章

骑行故事初心--自由的御风而行

2023年,三年疫情过后第一个春天,我开始了骑行: 空...

Unity3D for VR 学习(7): 360°全景照片

    在VR应用中,有一个相对简单的虚拟现实体验,那...

C#程序员整理的Unity 3D笔记(六):Git源码管理

对程序员而言,写的代码用源码管理系统管理起来,非常方便...

《一句顶一万句》 遇见一个能说的上话的人不易

2024年 甲辰龙年春节假期,我看了2本小说,茅盾文学...

相关【技术杂谈】文章

查看所有相关【技术杂谈】文章
搭建Squid3 密码账号IP代理

上文中,说明了 Squid3 IP Proxy 隐藏原IP,这里就搭建Squid 3密码账号IP代理进行整理,涉及...

不用插件,js脚本显示星号密码

不用插件,js脚本显示星号密码

以前,我是用Chrome插件做这个这的--显示星号密码的。 今天,分享一个不用插件...

执行MySQL报错

今天新采购了柒比贰WordPress主题,安装主题时候报错: MySQL命令行使用sql语句进行建表时,MySQL...