visual studio 单元测试的认识

单元测试(unit testing),对软件中的最小单元进行检查和验证,其一般验证对象是一个函数或者一个类。

 

Team Test 是 Visual Studio 集成的单元测试框架,它支持:

  • 测试方法存根 (stub) 的代码生成。

  • 在 IDE 中运行测试。

  • 合并从数据库中加载的测试数据。

  • 测试运行完成后,进行代码覆盖分析。

 Microsoft.VisualStudio.TestTools.UnitTesting dll  

通过上面的方法,我们可以看到,写UT 先arrange,再写act,最后是assert.

推荐Moq,对EF的方法和类进行Mock。mock之前需要实现这三个接口:IDbAsyncEnumerator,IDbAsyncEnumerable,IDbAsyncQueryProvider 。其实mock也是'action->assertion' 方式。

不同的在于stub是用的状态验证而mock使用的是行为验证。如果要基于stub编写状态验证的方法,需要写一些额外的代码来进行验证。而Mock对象用的是行为验证,并不需要写太多的额外代码。

 

代码覆盖

单元测试的一个关键度量是决定在单元测试运行时测试了多少代码。该度量称为代码覆盖,Team Test 包含了一个代码覆盖工具,可以详细解释被执行代码的百分率,并突出显示哪些代码被执行,那些没有被执行。

 

最佳实践

在结束前我们回顾几种单元测试的最佳实践。首先,TDD 是非常有价值的实践。在所有现有的开发方法中,TDD 可能是多年来根本上改进开发且投资成本最小的一种。每个 QA 工程师都会告诉您,开发人员在没有相应的测试前不会写出成功的软件。有了 TDD,实践是在实现前编写测试,并且理想情况是,编写的测试可以成为无需人工参与执行的构建脚本的一部分。需要训练来开始养成习惯,但一旦建立习惯后,不使用 TDD 方法编码就像开车时不系安全带一样。

对于测试本身,有一些额外的原则可以帮助成功进行测试:

  • 避免测试产生依赖性,这样测试需要按照特定的顺序执行。每个测试都应该是自治的。

  • 使用测试初始化代码验证测试清除已经成功执行,如果没有则在执行测试前重新执行清除。

  • 在编写任何产品代码的实现前编写测试。

  • 对于产品代码中的每个类创建一个测试类。这样可以简化测试的组织,并可以容易地选择在何处放置每个测试。

  • 使用 Visual Studio 生成初始化的测试项目。这样可以大大减少手工设置测试项目并与产品项目关联的步骤。

  • 避免创建其他依赖计算机的测试,例如依赖特定的目录路径的测试。

  • 创建模拟对象 (mock object) 来测试接口。模拟对象通常在需要验证 API 符合所需功能的测试项目中实现。

  • 在继续创建新的测试前验证所有测试运行成功。这样可以保证在破坏代码后立刻进行修正。

  • 可以最大化无需人工参与执行的测试代码。在依赖于手工测试前,必须完全肯定无法采用合理的无需人工参与执行的测试方案。

转载于:https://www.cnblogs.com/sunShineJing/p/7121741.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值