unity中的单元测试

前端时间研究了软件的开发方法,于是打算引进TDD(测试驱动开发)。TDD的优缺点就不细说了,网上一搜一大把。

unity中常用的测试工具

1.NUnit

unity5.3以后已经在Editor中集成了测试模块,该测试模块依托于http://nunit.org/

2.Unity Test Tool

Unity官方还推出了一款测试插件Unity Test Tool(基于NSubstitute),除了单元测试之外还包括:

    单元测试
    集成测试
    断言组件

需要指出的是Unity Test Tool基于NSubstitute这个库。

下面以NUnit为例:(要引入NUnit.Framework命名空间)

    public class h1  {

        public float currentHp;
        public void TakeDamage(float a)
        {
            this.currentHp -= a;
        }
    }



    [TestFixture]
    public class h1Tests  {

        [Test]
        public void TakeDamage_h1()
        {
            //Arrange
            h1 h = new h1();
            h.currentHp = 100f;
            //Act
            h.TakeDamage(50f);
            //Assert
            Assert.AreEqual(50f, h.currentHp);
        }
    }

[TestFixture]:标识一个自动化NUnit测试的类。

[Test]:可以加在一个方法上,标识这个方法是一个需要调用的自动化测试。

当然,还有一些别的特性供我们使用
常用的NUnit属性见下表:

    [SetUp] 
    [TearDown]  
    [TestFixture] 
    [Test] 
    [TestCase] 
    [Category] 
    [Ignore] 

注意:

测试单元的行为——3A原则

有了NUnit属性可以标识可以自动运行的测试代码和测试代码的一些命名规则,下面我们就来看看如何测试自己的代码。
一个单元测试通常包含三个行为,可以归纳为3A原则即:

    Arrange,准备对象,创建对象并进行必要的设置。
    Act,操作对象。
    Assert,断言某件事情是预期的。

如有不明白的地方欢迎留言交流。

你可能感兴趣的:(Unity)