Unity 单元测试(PLUnitTest工具)
2016-04-01 15:09
435 查看
代码测试的由来
上几个星期上面分配给我一个装备系统,我经过了几个星期的战斗写完90%的代码. 后来策划告诉我需求有一定的改动,我就随着策划的意思修改了代码. 但是测试(Xu)告诉我装备系统很多功能都用不上了. Xu: 我有300多项测试用例,现在有很多项都无法运行了. 你修改了部分代码我又要全部跑一边, 我只能告诉你,我只能大概看一遍了. 之后我就买了本单元测试的书籍,向项目中引用代码测试的概念,帮助我几分钟测试完xxx多项测试用例,不过跟主程谈引入这个东西还是失败了, 应该他们认为不需要这个东西. 0.0那我还是把他放出来吧.PLUnitTest(工具的由来)
我照着书籍上在Unity项目中创建单元测试框架, 后来发现我之前写好的函数,输入我传入一些数据才可以获取函数结果. 这些数据是一些类. 这些类的构造结构非常复杂,我的单元测试是在Untiy不运行下测试的. 而这些数据需要Unity运行下才能获取(比如从本地xml读取出来), 我不可能因为测试几个函数又要编写一套数据读取模块获取到函数需要的数据?(这样太麻烦), 聪明的盘子脸想到了在游戏中把这些数据序列化保存下来,拿到单元测试项目中使用,就可以测试自己的函数啦. 这个工具就诞生了.如果你想在Unity 或者 其他项目中引入单元测试,但因为自己要组织数据来测试函数而烦恼,这个工具可以帮助你.
工具的作用:
1) 支持Json格式化输出字符串(以Json格式查看对象信息)2) 支持对象状态捕捉
3) 序列化支持(Json,BinaryFormatter,ProtoBuffer等)
这里我就直接附上部分代码,图,地址.
namespace PlatefaceTest { [TestClass] public class EquipForgeTest { [TestMethod] public void EquipCompoud() { //组织本次测试所需要的数据,PLUnitTools StateTools.CurSerializeType = SerializeType.Protobuf_Net; //选择序列化方式 var i = StateTools.GetState<c_gs.MetaData.Formula>(DefineTestId.TestId); //反序列化,你捕捉的对象 //代码测试 Assert.IsTrue(ItemManager.Instance.MasterialTypeCheck(i, EquipForge.Instance.MasterialItemAry)); } } }
工具地址:http://code.taobao.org/svn/TestObjectCatch/
实例地址: http://code.taobao.org/svn/PLUintTestDemo/
相关文章推荐
- Unity中NGUI出现边缘线条的解决办法
- unity3d的playmaker插件使用教程,六、血量显示及处理
- Android 项目中引用Unity3D建好的模型对象
- Unity FisheyeShader using Spherical Mapping
- Unity中的输入事件总结与数字电视遥控器键值映射
- unity函数
- Unity C# 内存数据保护
- ShaderLab: Pass
- 【Unity开发】Unity获取设备屏幕分辨率
- Unity中实现高效Signal-slot模式--高效消息分发
- Unity实现相似于安卓原生项目的点击安卓返回button回到前一页的功能
- Unity3D 的摄像机
- Unity Shaders and Effects Cookbook (3-1) 使用Unity 内置的Specular Lighting - BlinnPhong
- 【Unity3D游戏开发】性能优化之Texture图片空间和内存占用分析(三七)
- 【Unity3D游戏开发】性能优化之如何将包大小减少到极致(三六)
- Unity 博客精选(持续更新)
- Thinking in Unity3D:基于物理着色(PBS)的材质系统
- unity androidSDK和IOS内购
- [Unity官方文档翻译]Import Settings unity资源中的导入设置
- 关于 Unity UI 中 GraphicRaycaster.Raycast 数量巨大的问题