前天把以前同事介绍的敏捷开发的书看完了,决定开始单元测试驱动开发TDD

前端之家收集整理的这篇文章主要介绍了前天把以前同事介绍的敏捷开发的书看完了,决定开始单元测试驱动开发TDD前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

ios开发的单元测试简单一些

unity的没用过,今天搜索了下,发现居然有官方工具,更新到1.22版

决定使用官方的

地址是:unit test tool


用法和注意事项


两种单元测试:

A.NUnit,官网:http://www.nunit.org:

发现一篇好文章http://confach.cnblogs.com/archive/2005/06/20/177817.aspx将NUnit的

测试静态类的(未继承MONOBehavior)

跟ios开发的xctest差不多,用attritube:[Test]表明下面的方法是个测试,命名空间是Nunit.frameword

Assert.~~~~断言~~,巴拉巴拉的什么表明测试通过没有

Assert.Pass();

ssert.Fail();

还有什么比较之类的方法

AreEqual相等

AreNotEual不相等

Greater大于

Less小于

IsNotNull不为空

.等等等还有好多不明白干什么的断言方法,具体列表在下面的源文件里面,请自行浏览猜测用途




第二种是Integration Test

就是可以在运行时做的单元测试



具体流程是

1.打开窗口

2.建立测试

3.设置是否断言组件(Assertions组件)通过就pass(通过任意一个之后貌似就会认为是成功了,而不是timeOut或者继续其他断言判断,也就是说后面如果有失败的就不继续测了,建议关闭)

4.设置超时时间,超过之后视为通过

5.在子物体中添加测试物体添加脚本(Assertion默认有:float,bool,vector2,3,4,renderer等判断)

6.添加断言脚本或自己写测试脚本


PS:默认的几个断言类型如果觉得不够,自己写,继承泛型类ComparerBaseGeneric<T1,T2>,重写Compare方法即可,ComparerBaseGeneric<T>则是需要一个参数的版本


当自己写单元测试脚本,

通过或失败时执行IntegrationTest.Pass (gameObject);或IntegrationTest.Fail (gameObject);即可,这个脚本需要继承Monobehavior,挂载到物体上

用上了单元测试驱动开发,顿时感觉自己对代码的信心加强了不少啊





usingNUnit.FrameworkConstraints;
SystemCollectionsComponentModelnamespaceFramework
{
publicclassAssert
//
//StaticProperties
staticintCounter
get
result=Assertcounter;
=0return}
}

Constructors
protected()
Methods
[CLSCompliant(false)]
voidAreEqualuintexpected,actual)
That(IsEqualTo),164)">null);
stringmessageparamsobject[]argsulonglongdouble?deltaAssertDoublesAreEqualget_Value(),164)">decimalAreNotEqualNotfloatAreNotSameSameAsAreSameifIsNaN)||IsInfinity))
).WithinByValIResolveConstraintexpressionExceptionCatchTypeexpectedExceptionTypeTestDelegatecodeThrows(newInstanceOfTypeConstrainttypeof)),68)">T<>()where:Exception
)(()));
ContainsICollectionCollectionContainsConstraintDoesNotThrowThrowsNothingConstraintEmptyEditorBrowsableEditorBrowsableStateNeverboolEqualsabthrowAssertionException("Assert.EqualsshouldnotbeusedforAssertions"Fail===else
!=&&Length>FormatFalseconditionGreaterarg1arg2GreaterThanIComparableGreaterOrEqualGreaterThanOrEqualToIgnoreIgnoreExceptionInconclusiveInconclusiveExceptionIsAssignableFrom>(AssignableFromIsEmptyaStringEmptyStringConstraintIEnumerablecollectionEmptyCollectionConstraintIsFalseIsInstanceOfInstanceOfObsolete]
IsInstanceOfTypeaDoubleNaNIsNotAssignableFromIsNotEmptyIsNotInstanceOfIsNotInstanceOfTypeIsNotNullanObjectNullIsNotNullOrEmptyNotConstraintNullOrEmptyStringConstraint()),68)">IsNullIsNullOrEmptyIsTrueTrueLessLessThanLessOrEqualLessThanOrEqualToNotNullPassSuccessExceptionReferenceEqualsAssert.ReferenceEqualsshouldnotbeusedforAssertionsActualValueDelegatedelexprConstraintconstraintResolve();
IncrementAssertCount(!MatchesMessageWritermessageWriter=TextMessageWriterWriteMessageToToString());
>(refExceptionTypeConstraintextry
catchex2}

猜你在找的设计模式相关文章