描述

Editor Tests Runner是Unity中用来实现TDD的,其内部实现是基于NUnit。

其他

测试脚本要放在Editor文件夹中,测试要能够在一帧的时间内完成。


使用

打开EditorTestsRunner

依次点击:Window -> EditorTestsRunner

编写测试代码

注意事项:

  1. 要放在Editor文件夹中
  2. 要使用命名空间:NUnit.Framework
  3. 测试方法要加上[Test]属性
[TestFixture]
public class TestTDD {
    [Test]
    public void TestFoo()
    {
        Wallet wallet = new Wallet();
        wallet.Money = 100;
        wallet.Use(10);
        Assert.AreEqual(90, wallet.Money);
    }
}

public class Wallet
{
    public float Money;

    public void Use(float delta)
    {
        Money -= delta;
    }
}

更简便的方法

你可以直接点击 Assets -> Create -> Editor Test C# Script 来快速创建一个测试脚本。
模板测试脚本如下:

using UnityEngine;
using UnityEditor;
using NUnit.Framework;

public class Test1 {

    [Test]
    public void EditorTest()
    {
        //Arrange
        var gameObject = new GameObject();

        //Act
        //Try to rename the GameObject
        var newGameObjectName = "My game object";
        gameObject.name = newGameObjectName;

        //Assert
        //The object has a new name
        Assert.AreEqual(newGameObjectName, gameObject.name);
    }
}

通过查看该测试脚本,可以看见一个测试过程是:

  1. Arrange:部署你的测试环境,比如初始化类
  2. Act:进行你要测试的行为
  3. Assert:判断测试后的状态是否如预期

其他选项

点击右上角的图标,可以进行以下的设置:


提升

  1. 因为该EditorTestsRunner只是在NUnit上套了个外壳,因此要想深入地学习和使用EditorTestsRunner,就需要去学习NUnit。
  2. 学习TDD

在Unity中使用TDD - 初探的更多相关文章

  1. 基于Unity的AR开发初探:第一个AR应用程序

    记得2014年曾经写过一个Unity3D的游戏开发初探系列,收获了很多好评和鼓励,不过自那之后再也没有用过Unity,因为没有相关的需求让我能用到.目前公司有一个App开发的需求,想要融合一下AR到A ...

  2. Unity中使用Attribute

    Attribute是c#的语言特性 msdn说明如下: The Attribute class associates predefined system information or user-def ...

  3. 在Unity中使用UGUI修改Mesh绘制几何图形

    在商店看到这样一个例子,表示很有兴趣,他们说是用UGUI做的.我想,像这种可以随便变形的图形,我第一个就想到了网格变形. 做法1: 细心的朋友应该会发现,每个UGUI可见元素,都有一个‘Canvas ...

  4. Unity中使用WebView

    Unity中使用WebView @(设计) 需求,最近游戏中需要引入H5直播页面和更新比较频繁的赛事页面,需求包括:加密传参数.和Unity交互,在Unity框架下其实有几种方案: 内置函数Appli ...

  5. Unity中创建二维码

    在网络上发现了一个可以把字符串转换成二维码的dll,但是我们要怎么使用他呢.不废话,直接进入主题. 用到的引用 using UnityEngine;using ZXing;using ZXing.Qr ...

  6. 在Unity中创建可远程加载的.unity3d包

    在一个Unity项目中,发布包本身不一定要包括所有的Asset(译为资产或组件),其它的部分可以单独发布为.unity3d,再由程序从本地/远程加载执行,这部分不在本文讨论范围.虽然Unity并没有直 ...

  7. 【原创翻译】初识Unity中的Compute Shader

    一直以来都想试着自己翻译一些东西,现在发现翻译真的很不容易,如果你直接把作者的原文按照英文的思维翻译过来,你会发现中国人读起来很是别扭,但是如果你想完全利用中国人的语言方式来翻译,又怕自己理解的不到位 ...

  8. 【unity shaders】:Unity中的Shader及其基本框架

    shader和Material的基本关系 Shader(着色器)实际上就是一小段程序,它负责将输入的Mesh(网格)以指定的方式和输入的贴图或者颜色等组合作用,然后输出.绘图单元可以依据这个输出来将图 ...

  9. Unity中各个平台的预编译的运用方式

    1,unity中官方文档的一个操纵关键词   Platform Dependent Compilation 2,常用的预编译关键词    UNITY_EDITOR    编辑器调用.UNITY_STA ...

随机推荐

  1. PhpStorm 2016.3 For Mac 重大里程碑更新 -- 终于解决了不能输入中文标点符号的重大bug

    PhpStorm 2016.3 For Mac 重大里程碑更新 1.[终于解决了]不能输入中文标点符号的重大bug,如 逗号“,”.“.”: 2.可以在一个窗体中,同时打开多个项目: 3.其他... ...

  2. 第3月第11天 vs2005调试 ace编译

    1.vs2005调试 http://blog.csdn.net/u010797208/article/details/40452797 2.macbook ace编译 小坑: 源代码clockid_t ...

  3. 使用php+swoole对client数据实时更新(上)

    如果想对一个列表做实时的更新,传统的做法是采用轮询的方式.以web为例,通过Ajax定时请求服务端然后获取数据显示在页面.这种方式实现简单,缺点就是浪费资源. HTTP1.1新增加了对websocke ...

  4. C++基础知识(4)---例外、异常处理

    对Java熟悉的朋友们都很清楚,java中的异常处理机制是非常完善的.并且java强制使用异常处理,用户必须对有可能出现异常的情况进行处理. 在C++中并没有强制用户使用异常处理,但是使用异常处理将会 ...

  5. PHPExcel yii2 加载使用

    除了用composer 包管理组件的方式外 我们还可以使用 直接最原始的加载方式---超级简单 1.PHPExcel上下载最新的PHPExcel http://phpexcel.codeplex.co ...

  6. Cannot find `aapt.exe`. Please install the Android SDK Build-tools package

    Google has updated their SDK tools ("Android SDK Tools" Rev. 23) in a way that also requir ...

  7. 启动调试IIS时,vs无法在 Web 服务器上启动调试。Web 服务器未能找到请求的资源。 有关详细信息,请单击“帮助”。

    问题截图 1.检查 是否设置了本地IIS 2.检查IIS端口是否为80 3.默认网站设置是否正确 可参考,查看网站绑定是否正确

  8. 在SQLSERVER2008中建立数据库复制碰到的问题

    一是开始用FTP快照方式,设置好后运行中无法传输快照,应该是FTP设置中的问题,有待进一步研究.后改用文件夹共享方式,出现无法取得文件的错误,原因是订阅服务器上的快照文件夹设为默认设置,改成设置为备用 ...

  9. mysql 外键 级联

    主表 -- 创建用户信息表 create table userinfo ( userid int primary key not null auto_increment COMMENT '主键', u ...

  10. button按钮

    button按钮只加类名不加type时,点击此按钮页面会刷新