浅谈Unity自带的单元测试工具 以及this关键字拓展方法
一、单元测试的定义与作用
单元测试定义:单元测试在传统软件开发中是非常重要的工具,它是指对软件中的最小可测试单元进行检查和验证,一般情况下就是对代码中的一个函数去进行验证,检查它的正确性。一个单元测试是一段自动化的代码,这段代码调用被测试的工作单元,之后对这个单元的单个最终结果的某些假设进行检验。单元测试使用单元测试框架编写,并要求单元测试可靠、可读并且可维护。只要产品代码不发生变化,单元测试的结果是稳定的。(百度的)
单元测试可以让你在软件开发的早期阶段发现 Bug,而不必到集成测试的时候才发现,开发完成一个模块(类、函数)就对应地做一个单元测试,尽早发现并处理掉bug,提高代码的质量。(反正单元测试就是杠杠好!)
二、 Unity的单元测试工具 Editor Tests Runner
点击Window -> Editor Tests Runner 菜单,可以看到我们今天的主人公,Editor Tests Runner!
他有两个模式让开发者选择,第一种是编辑器模式下,另一种是运行环境下触发,这个很好理解,就是什么时候测试用的,对应的我们只需要针对的选择就好了。
接下来我们创建文件夹,Editor -> Test,注意,test文件夹一定要在editor文件夹下,否则测试脚本不生效。
这个时候我们只需要在文件夹中右键->创建->创建测试脚本 就可以创建出来我们的测试脚本。
在脚本中我们可以看到已经有的几个方法,我们只需要在其中写上我们需要测试的方法就ok了。
注意,有两个方法,一个是普通类环境,一个是继承mono的环境,在继承mono的环境下可以测试协程等方法。
三、接下来我们讲一讲this静态拓展关键字
1、this关键字
this关键字是C#语法中的一种,可以很方便的给类添加方法给我们使用。一般是用来做一些方便快速开发的工具与库来使用的。划重点this关键字可以使我们快速的开发自己的库,这也是我为什么这么喜欢他的原因。
2、使用方法/条件
- 需要在静态类中
- 静态方法,参数是this+ 你需要拓展的类型
以下我们用一个小dog来举例
//这里举例
public class Dog{
public string name;
public void Wang(){
print("wang! wang! wang!");
}
}
//静态拓展
public static class DogExtend
{
public static void Eat(this Dog _self,string food){
print(_self.name+"正在吃:"+food);
}
}
//运行
public class Main{
Dog mDog = new Dog();
public void Start(){
mDog.name = "小狗";
mDog.Eat("骨头"); //这个时候我们可以。出Eat这个方法,同时这句话会输出 小狗正在吃骨头
}
}
这就是静态拓展方法最简单的使用了,是不是很方便呢?Get到的小伙伴们快来一起做自己的库吧!
每日共勉!加油啦!