在软件开发中单元测试是非常重要的一个环节, =。=盘子脸去了几家公司都没有单元测试这个概念. 我们的系统虽然从代码看上是分离的, 在多数情况下都需要依赖于其他模块来运行.(单元测试部分内容教我解决这个问题.) 虽然学习了单元测试,但我相信实际过程中使用不到了. 接下来我稍微介绍下Unity如何进行单元测试.(推荐书籍”单元测试的艺术第二版”)

 

为什么要使用单元测试:

1. 我们可以从单元测试入口-> 我们编写的游戏模块 (而不是直接在Unity运行进入我们的模块)

2. 在一个地方统一编写单元测试, 造成测试代码不会分散

3. 还有很多很多优点,(使用单元测试很可能造成项目进度延后)

 

测试框架:

1. C# NUnit 非常不错的框架(需要在visual studio下载两个插件)

    Templates     是创建项目的一个模版,安装之后可以在visual studio中创建测试项目了

    Test Adapter 是调试窗口

1. UnityTestTools(框架已经对Unity窗口进行扩展,测试就直接在Unity窗口进行即可(大同小异而已)),AssetStore中可以下到

 

 

开始介绍NUnit框架基本使用:

首先我们创建一个控制台程序叫单元测试项目,接着创建NUnit测试项目(叫NUnit.Test1)

我们制作一个文件后缀名验证模块,其中一个FileVerify验证后缀名是否合法(txt). 接下来在控制台项目中创建一个FileVerify类里面有一个

IsFileNameEndTxt方法验证字符串是否以txt结尾,是返回true,不是返回false

public class FileVerify
{
//验证文件后后缀明是不是txt
public bool IsFileNameEndTxt(string fileName)
{
if(fileName.EndsWith(".txt"))
return true;
else
return false;
}
}

接下来看下我们的NUnit项目,他已经帮我们创建一个类(TestClass),里面已经有一个方法TestMethod().现在我们不需要写任何代码,点击菜单栏-测试->窗口->测试资源管理器, 如下图:

点击全部运行,TestMethod就测试成功了.

接下来我们在TestMethod写入测试FileVerify.IsFileNameEndTxt()方法的单元测试, 我们首先想到传入1.txt 和 txt.两个字符串.你的项目要创建

FileVerify类必须NUnit项目引入控制台项目

[TestFixture]
public class TestClass
{
[Test]
public void TestMethod()
{
FileVerify f = new FileVerify();
bool isResult = f.IsFileNameEndTxt("1.txt");
Assert.IsTrue(isResult); isResult = f.IsFileNameEndTxt("txt.");
Assert.IsTrue(isResult,"这里报错了");
}
}

我们在运行测试(这里一定会失败啦,因为”txt.”返回的是false), 遇到了Asset.IsTure(false) 抛出异常

单元测试如何调试?

选中单个测试-> 调试选中测试

 

到这里你已经学会了如何进行一个单元测试啦!()

==============================================================================

Unity 单元测试(NUnit,UnityTestTools)的更多相关文章

  1. Unity 单元测试(PLUnitTest工具)

    代码测试的由来 上几个星期上面分配给我一个装备系统,我经过了几个星期的战斗写完90%的代码. 后来策划告诉我需求有一定的改动,我就随着策划的意思修改了代码. 但是测试(Xu)告诉我装备系统很多功能都用 ...

  2. C#单元测试Nunit小结(20141018)

    1. 下载和安装Nunit工具: NUnit是一款堪与JUnit齐名的开源的回归测试框架,供.net开发人员做单元测试之用,可以从www.nunit.org网站上免费获得,然后在系统中安装: 2. 在 ...

  3. C#单元测试Nunit小结

    1. 下载和安装Nunit工具: NUnit是一款堪与JUnit齐名的开源的回归测试框架,供.net开发人员做单元测试之用,可以从www.nunit.org网站上免费获得,然后在系统中安装: 2. 在 ...

  4. 单元测试NUnit 的文章

    请参考 https://www.cnblogs.com/ranh941/p/7629279.htmlhttps://blog.csdn.net/qincode/article/details/1831 ...

  5. java的unity单元测试

    import org.junit.After; import org.junit.Before; import org.junit.Test; public class TestUnit { publ ...

  6. 单元测试NUnit,mock组件NSubstitute,信号量SemaphoreSlim,异步lock等例子

    public class LockTest { private IDatabase _database; private readonly Random _random = new Random(); ...

  7. Nunit NMock Ncover单元测试

    Nunit中如何进行事务性单元测试   单元测试要求:单元测试方法并不真正去变更数据库,也就是说单元测试不依赖于数据库中的数据.那我们如何解决执行单元测试方法后,不变更数据库中数据呢? 一般的解决方案 ...

  8. 我的TDD实践---UnitTest单元测试

    我的TDD实践---UnitTest单元测试 “我的TDD实践”系列之UnitTest单元测试 写在前面: 我的TDD实践这几篇文章主要是围绕测试驱动开发所展开的,其中涵盖了一小部分测试理论,更多的则 ...

  9. .NET WEB程序员需要掌握的技能

    本来这个是我给我们公司入职的新人做一个参考,由于 @张善友 老师在他的微信号转了我的这篇文章<<.Net WEB 程序员需要掌握的技能>>,很多人觉得比较有用,说是看了后知道一 ...

随机推荐

  1. 《学习opencv》笔记——矩阵和图像操作——cvCalcCovarMatrix,cvCmp and cvCmpS

    矩阵和图像的操作 (1)cvCalcCovarMatrix函数 其结构 void cvCalcCovarMatrix(计算给定点的均值和协方差矩阵 const CvArr** vects,//给定向量 ...

  2. [AngularJS + RxJS] Search with RxJS

    When doing search function, you always need to consider about the concurrent requests. AEvent ----(6 ...

  3. IP转发和子网路由

    IP地址的分类 在TCP/IP协议中,协议栈分为4层.从上到下依次是应用层.运输层.网络层.网络接口层. IP协议就工作在网络层.IP协议将纷繁复杂的物理层协议屏蔽掉,对上层提供统一的描述和管理服务. ...

  4. Verilog 读写文件

    Verilog 读写文件 在数字设计验证中,有时我们需要大量的数据,这时可以通过文件输入,有时我们需要保存数据,可以通过写文件保存. 读写文件testbench module file_rw_tb() ...

  5. SVG 路径(path)

    本文转自:https://developer.mozilla.org/zh-CN/docs/Web/SVG/Tutorial/Paths <path>元素是SVG基本形状中最强大的一个,它 ...

  6. myeclipse添加svn

    一直在用MyEclipse,每次重装或者换开发环境时都需要安装svn插件,每次都是在网上找,感觉没有说的太明白的,还是自己写个以备将来查看. 安装svn插件有很多种方式,在线的.离线的.解压的(又分为 ...

  7. OpenGL ES 2.0 剪裁测试

    剪裁测试:可以在渲染时用来限制绘制区域,通过此技术可以在屏幕(帧缓冲)上指定一个矩形区域. //启用剪裁测试 GLES20.glEnable(GL10.GL_SCISSOR_TEST); //设置区域 ...

  8. 关于毕设WiFi选型

    毕设做基于WiFi的家庭灯光影音控制,现在主要是WiFi模块上的选型,自己选了ESP8266. 一开始是看到了机智云的内容,想尝试机智云.但是目前没有母版,不知道怎么下手. 接下来就先尝试通过通用类型 ...

  9. Opensuse13.2开启ssh

    要开启ssh很简单,步骤分为三步 步骤1: 安装ssh zypper install ssh 步骤2:启动ssh daemon网上很多通过 service 命令或者 init.d 目录中的脚本启动ss ...

  10. 记“debug alipay”一事

    背景:客户支付成功,无法返回支付结果 ===================================== 查找原因,追踪代码: verified = AlipayNotify.verify(p ...