单元测试是软件开发中的一个重要环节,它确保代码的各个独立部分按预期工作。"Unit Test Guideline" 提供了创建高效、可维护的单元测试的一些关键原则和最佳实践。 一个优秀的单元测试应具备以下基本属性: 1. 自动化和可重复性:测试应该能够无需人工干预而自动运行,并且每次都能得到相同的结果。 2. 易于实现:编写单元测试时,应该简洁明了,避免过于复杂的逻辑。 3. 可持久使用:一旦编写完成,单元测试应能长期有效,适应未来的代码修改。 4. 任何人都可以运行:测试不应依赖特定环境或知识,任何熟悉测试框架的开发者都应能轻松执行。 5. 无外部依赖(除了测试基础设施):测试应专注于被测代码,尽量减少对其他代码的依赖。 6. 快速运行:为了提高效率,测试应能在短时间内完成。 单元测试的基本行为遵循 Arrange-Act-Assert 模式: 1. Arrange:设置测试所需的对象和环境,如有必要,创建并初始化它们。对于多个测试共用的设置,可以封装到私有辅助方法中。 2. Act:对对象执行操作,即调用要测试的方法。 3. Assert:验证预期结果,确保测试对象的行为符合预期。例如,使用 `Assert.AreEqual` 检查预期值与实际值是否相等,`Assert.IsNull` 和 `Assert.IsNotNull` 验证对象是否为null,`[ExpectedException(typeof(ApplicationException))]` 用于测试错误处理情况。 在Microsoft的MSTest框架中,有以下四个基本元素: 1. `[TestClass]`:标记包含测试方法的类。 2. `[TestMethod]`:标记为测试方法的函数。 3. Assert:提供一系列断言方法,如 `Assert.AreEqual`,`Assert.IsNull` 和 `Assert.IsNotNull`,用于检查测试条件。 4. `[ClassInitialize]`,`[ClassCleanup]`,`[TestInitialize]` 和 `[TestCleanup]`:分别用于类级别的初始化和清理,以及单个测试方法的初始化和清理。这些方法应在所有测试方法都需要的情况下使用,以避免混淆。 设计单元测试时,遵循一定的命名规范是很重要的: 1. 每个程序集都应该有自己的测试程序集,测试程序集的命名通常是原程序集名称加上 "Test" 后缀。 2. 对于每个被测试的类,创建一个名为 `<OriginalClassName>Test` 的测试类。 3. 每个方法可以有多个测试方法,命名格式为 `<MethodName_StateUnderTest_ExpectedBehavior>`,例如 `Sum_NegativeNumberAs1stParam_ExceptionThrown`,`Sum_NegativeNumberAs2ndParam_ExceptionThrown` 和 `Sum_SimpleValues_Calculated`。 遵循这些指导原则,可以创建出具有高覆盖率、易于理解和维护的单元测试,从而提升代码质量,减少bug,并加速软件的迭代和维护过程。
剩余16页未读,继续阅读
- halala2012-11-01内容可以就是太简单了
- 粉丝: 1
- 资源: 5
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 数据分析-54-逻辑回归预测用户是否会点击广告(包含代码和数据)
- 钢结构焊接制造.pdf
- 橙色卡通风格的顶级笑话整站网站模板.zip
- 橙色卡通风的时尚设计网站网页模板下载.zip
- 橙色卡通风格的儿童APP官方网站模板下载.zip
- 橙色可爱风格的宠物狗网站模板下载.zip
- 橙色卡通式漂亮的企业整站模板下载.zip
- 橙色宽屏风格的APP手机应用企业网站模板.zip
- 橙色宽屏风格的IDC服务器销售网站模板下载.zip
- 橙色宽屏风格的包装设计公司网站模板下载.zip
- 橙色宽屏风格的html5科技公司网站模板.zip
- 橙色宽屏风格的标准布局模板下载.zip
- 橙色宽屏风格的餐厅网站模板下载.zip
- 橙色宽屏风格的创意设计公司模板下载.zip
- 橙色宽屏风格的大学生培训机构网站模板下载.zip
- 橙色宽屏风格的慈善关爱机构源码下载.zip