鸿 网 互 联 www.68idc.cn

当前位置 : 服务器租用 > .net技术 > vs2010 > >

VS2012 Unit Test(Void, Action, Func) —— 对无返回值、使用Action或Func

来源:互联网 作者:佚名 时间:2013-10-23 08:57
【提示】 1. 阅读文本前希望您具备如下知识:了解单元测试,了解Dynamic,熟悉泛型(协变与逆变)和Lambda,熟悉.NET Framework提供的 Action与Func委托。 2.如果您对单元测试无兴趣请止步。 3.本文将使用一些我自己的测试公共代码,位于https://idletest.co

【提示】

1. 阅读文本前希望您具备如下知识:了解单元测试,了解Dynamic,熟悉泛型(协变与逆变)和Lambda,,熟悉.NET Framework提供的
Action与Func委托。
2.如果您对单元测试无兴趣请止步。

3.本文将使用一些我自己的测试公共代码,位于 https://idletest.codeplex.com/,此处亦非常欢迎来访。

4.关于本人之前单元测试的文章可参阅

《在Visual Studio 2012使用单元测试》、

《VS2012 单元测试之泛型类(Generics Unit Test)》、

《VS2012 Unit Test —— 我对接口进行单元测试使用的技巧》

 【修改IdleTest】

 为了适应本次单元测试的编码,对IdleTest进行了一些更新,本文只描述更新部分,具体源码请移步https://idletest.codeplex.com/。

1.重构TestCommon类的ArrayEqual方法,变成了

#region Equal 判断两个数组项相等(顺序必须一致),对数组项使用"Equal方法"校验, /// 如果非CTS类型(即自定义),则应在使用本方法前对Equal方法进行重载 ArrayEqual(Array array1, Array array2) { bool isCountEqual = CollectionCountEqual(array1, array2); if (!isCountEqual || array1 == null || array2 == null) { return isCountEqual; } for (int i = 0; i < array1.Length; i++) { if (!object.Equals(array1.GetValue(i), array2.GetValue(i))) { return false; } } return true; } 判断两个集合项相等(顺序必须一致),对集合项使用"Equal方法"校验, /// 如果非CTS类型(即自定义),则应在使用本方法前对Equal方法进行重载 ListEqual(IList list1, IList list2) { bool isCountEqual = CollectionCountEqual(list1, list1); if (!isCountEqual || list1 == null || list2 == null) { return isCountEqual; } for (int i = 0; i < list1.Count; i++) { if (!object.Equals(list1[i], list2[i])) { return false; } } return true; } 判断两个集合项相等(顺序必须一致),对集合项使用"Equal方法"校验, /// 如果非CTS类型(即自定义),则应在使用本方法前对Equal方法进行重载 CollectionEqual(object collection1, object collection2) { if (collection1 == null && collection2 == null) { return true; } if (collection1 is Array && collection2 is Array) { return ArrayEqual(collection1 as Array, collection2 as Array); } if (collection1 is IList && collection2 is IList) { return ListEqual(collection1 as IList, collection2 as IList); } return false; } 验证两个集合的长度是否一致 长度相等(两个集合为null或者长度为0以及一个为null另一个长度为0均认为相等) CollectionCountEqual(ICollection collection1, ICollection collection2) { if ((collection1 == null || collection1.Count < 1) && (collection2 == null || collection2.Count < 1)) { return true; } else if ((collection1 == null || collection1.Count < 1) || (collection2 == null || collection2.Count < 1)) { return false; } return collection1.Count == collection2.Count; } #endregion

网友评论
<