前端时间研究了软件的开发方法,于是打算引进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,断言某件事情是预期的。
如有不明白的地方欢迎留言交流。