彩票走势图

图文详解CodeRush 13.2更新亮点Unit Test Builder (UTB)

原创|产品更新|编辑:我只采一朵|2013-12-10 09:41:40.000|阅读 640 次

概述:本文详细讲解了DevExpress CodeRush 13.2新增的 Unit Test Builder (UTB) 使用步骤,帮助你更好的完成代码测试.

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

开发人员大概都遇到过这种情况:就是在调试代码的过程中发现了一个由数据传输或软件状态引发的问题,你想继续逐步执行代码,但你又想为正在使用的方法添加一个测试用例。怎么办?不用担心,DevExpress CodeRush 13.2刚好新增了一个非常实用的新功能: Unit Test Builder (UTB)。它可以帮助你实现以上想法,下面小编就为你讲解一下它的使用步骤:

1、首先,你需要一个测试项目去引用至少一个测试框架,这个框架随便你选择,因为CodeRush支持所有的测试框架,Unit Test Builder(UTB)支持引用了多个测试框架的项目。

2、开始调试程序,然后你会发现一些有趣的地方。比如这里调用了一个计算素数的类:

Coderush13.2,IsPrime,素数

正如你从Expression Explorer中看到的那样,我们正在传送4,IsPrime方法返回了True。4不是一个素数,所以这是一个bug,下面进入IsPrime方法:

Coderush13.2,IsPrime

3、按下Ctrl+Alt+Shift+T为这个方法生成一个新的测试,Unit Test Builder将会弹出来:

Coderush13.2,Unit Test Builder

 调试结束后你会看到一个生成的测试列表。将鼠标放在 "Method Called" 列上会显示值的路径提示:

Coderush13.2,Method Called,hint

4、下面我们重命名测试方法,将它命名为FourIsNotPrime:

Coderush13.2,FourIsNotPrime

5、我们可以根据需要选择设置不同的class,我们既可以使用当前的测试类,也可以创建一个新的测试类:

Coderush13.2,Test class

 6、最后,我们可以添加一个可选的remarks,它会在一个XML doc comment中显示:

Coderush13.2,remarks,XML doc comment

注意,所有上面使用UTB (4-6, above)的步骤均是完全可选的,你可以继续调试并添加测试方法,并且不需要对测试方法的名称作任何更改,也不用管它的位置。

7、继续调试并根据需要添加更多的测试

Coderush13.2,Debug

 8、完成之后,停止进程或关闭正在调试的应用程序,到这个时候所有我们添加到UTB的测试都会生成。

Coderush13.2,UTB

9、现在你可以添加一些声明代码(CodeRush有一些模板比如 "at"代表 Assert.IsTrue, "af" 代表Assert.IsFalse) 最后我们的测试代码是这样的:

[TestClass]
public class CalculatorTests
{
  Calculator _Calc;

  [TestInitialize]
  public void Initialize()
  {
    _Calc = new Calculator();
    _Calc.Owner = this;
  }

  [TestMethod]
  public void TestIsPrime5()
  {
    int candidate = 5;
    bool result = _Calc.IsPrime(candidate);
    Assert.IsTrue(result);
  }

  [TestMethod]
  public void TestIsPrime10()
  {
    int candidate = 10;
    bool result = _Calc.IsPrime(candidate);
    Assert.IsFalse(result);
  }

  // These two methods were generated following the
  // steps shown above in this blog. Note that the 
  // UTB is smart enough to realize that we need
  // an instance of Calculator and that this test 
  // fixture already had one. So we use that instance 
  // in the generated test methods. 

  /// <summary> 
  /// Four is not a prime number! 
  /// </summary> 
  [TestMethod] 
  public void FourIsNotPrime() 
  { 
    int candidate = 4; 
    bool result = _Calc.IsPrime(candidate); 
    Assert.IsFalse(result); 
  } 

  /// <summary> 
  /// Nine is not a prime number! 
  /// </summary> 
  [TestMethod] 
  public void NineIsNotPrime() 
  { 
    int candidate = 9; 
    bool result = _Calc.IsPrime(candidate); 
    Assert.IsFalse(result); 
  }
}

标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@pclwef.cn

文章转载自:慧都控件

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP