Unity 单元测试(PLUnitTest工具)
代码测试的由来
上几个星期上面分配给我一个装备系统,我经过了几个星期的战斗写完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 单元测试(PLUnitTest工具)的更多相关文章
- Unity自动打包工具
转载 https://blog.csdn.net/ynnmnm/article/details/36774715 最开始有写打包工具的想法,是因为看到<啪啪三国>王伟峰分享的一张图,他们有 ...
- 单元测试-代码覆盖率工具 -- JaCoCo
最近学习Mybatis的官方文档,看到了[项目文档]一节有很多内容没有见过,做个笔记,理解一下. 随着敏捷开发的流行,编写单元测试已经成为业界共识.但如何来衡量单元测试的质量呢?有些管理者片面追求单元 ...
- Unity 单元测试(NUnit,UnityTestTools)
在软件开发中单元测试是非常重要的一个环节, =.=盘子脸去了几家公司都没有单元测试这个概念. 我们的系统虽然从代码看上是分离的, 在多数情况下都需要依赖于其他模块来运行.(单元测试部分内容教我解决这个 ...
- 如何为你的美术妹子做Unity的小工具(二)
你想像这样一样 为自己的Unity 小工具打开一个Unity的窗口吗? 看起来就很厉害对不对 妹子看了还不激动吗 ?!
- 对 JavaScript 进行单元测试的工具
简介 单元测试关注的是验证一个模块或一段代码的执行效果是否和设计或预期一样.有些开发人员认为,编写测试用例浪费时间而宁愿去编写新的模块.然而,在处理大型应用程序时,单元测试实际上会节省时间:它能帮助您 ...
- Tessy — 嵌入式软件单元测试/ 集成测试工具
Tessy 源自戴姆勒- 奔驰公司的软件技术实验室,由德国Hitex 公司负责全球销售及技术支持服务,是一款专门针对嵌入式软件进行单元/ 集成测试的工具.它可以对C/C++ 代码进行单元.集成测试,可 ...
- JUnit---Java单元测试必备工具
在我们每天业务代码都写不完,为什么还要写测试代码呢,项目完成之后我再测不行吗? 看起来像是增加了代码量,但是它恰恰帮你减少了后期测试排错的时间,每个team,每个人都是有Bug指标的,首先,每次你 ...
- 如何为你的美术妹子做Unity的小工具(一)
在上的工具栏添加 也就是这个位置
- unity收集log工具
参考 yusong:http://www.xuanyusong.com/archives/2477 凉鞋 :https://www.cnblogs.com/liangxiegame/p/Uni ...
随机推荐
- Linux下那些奇葩的命令
相信喜爱编程,痴迷技术的你,肯定接触过甚至深爱着linux,甚至可能已经很熟悉linux了,可是linux那逗比的一面,你又知道多少. 本文!纯粹娱乐!不喜勿喷! 1.程序猿的愤慨! yes 当我们再 ...
- Python 获取Facebook用户的Friends的爱好中的Top10
CODE; #!/usr/bin/python # -*- coding: utf-8 -*- ''' Created on 2014-8-12 @author: guaguastd @name: f ...
- javascript 知识点坑
1. JavaScript事件属性 event.target 当目标事件发生span里面 当目标事件发生在main里面 e.target; // 目标节点DOM结构 e.target.id; // ...
- Http请求的 HttpURLConnection 和 HttpClient
HTTP 请求方式: GET和POST的比较 请求包.png 例子.png 响应包.png 例子.png 请求头描述了客户端向服务器发送请求时使用的http协议类型,所使用的编码,以及发送内容的长度, ...
- html hack 列表
<!--[if !IE]><!--> 除IE外都可识别 <!--<![endif]--> <!--[if IE]> 所有的IE可识别 <![ ...
- MongoVUE查询备忘
用了一段时间的MongoVUE,把一些在MongoVUE中常用的查询记录一下,以便查阅.1.and查询 查询date等于2016-01-08,并且page_url等于shouye.html ...
- C#类的基本用法
Preson类 using System; using System.Collections.Generic; using System.Linq; using System.Text; using ...
- spring 配置文件 引入外部的property文件的两种方法
spring 的配置文件 引入外部的property文件的两种方法 <!-- 引入jdbc配置文件 方法一 --> <bean id="propertyConfig ...
- n!(n的阶乘)
我们在这里介绍一些关于n!的性质. 在计数问题中,经常需要用到n!.有必要了解n!在mod p下的一些性质.下面我们假设p是素数,n!=ape(a无法被p整除),并试图求解e和a mod p(把这个东 ...
- 近期Responsive web design项目经验分享-高分辨率图片处理篇
在高分辨率的情况下 商品的图片难免会失真 怎样才能让商品的图片在高分辨率的情况下 效果不失真 提供用户更好的体验呢 我发现了一个解决方案 不知道是不是你想要的 先上图片对比下效果 左侧是使用后 ...