• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

如何在Visual C++ 2010中实践测试驱动开发

发布: 2011-2-23 11:36 | 作者: 陈良乔 | 来源: it168 | 查看: 99次 | 进入软件测试论坛讨论

领测软件测试网

  如果我们现在直接运行这个测试项目,当然是没法编译通过的。因为我们还没有创建Salay类。接下来就是测试驱动开发中的“开发”部分了。为了让刚才创建的测试项目能够编译运行并通过所有的测试,我们需要做的是:

  1) 向SalarySys解决方案中新添加一个Visual C++的Win 32静态库项目Salary。我们的开发工作就在这个项目中进行。

  2) 在Salay项目中新添加一个类Salary以实现工资计算的功能。为了让测试项目中的测试可以通过,我们先将Salay类简单地实现如下:

  class Salary

  {

  public:

  Salary(int nBaseYear) {};

  public:

  int GetSalary(int nNow)

  {

  return 1300;

  }

  };

  3) 有了开发项目之后,接下来的工作就是将开发项目和测试项目联系起来,让测试项目对开发项目进行测试。首先,将开发项目目录“$(SolutionDir)\Salary\”添加为测试项目的附加包含目录目录,这样测试项目可以找到Salary类的定义。然后我们还要将开发项目这个静态库链接到测试项目,为了完成这一步,我们需要在项目属性中将解决方案的输出目录“$(OutputPath)”设置为测试项目的附加库目录,然后将静态库Salary.lib设置为测试项目的附加依赖项。

  完成这些开发项目的编写以及测试项目的设置之后,我们的测试项目就可以编译通过并运行其中的测试了。

在Visual C++ 2010中实践测试驱动开发

  从Visual Studio 2010中测试结果

  到这里,我们就完成了测试驱动开发过程的一次完整的迭代,接下来的工作,就是编写更多的测试以覆盖设计中的所有用例,然后运行这些测试使这些测试通过,如果测试暂时无法通过,则对开发代码进行重构实现设计使得所有测试都可以通过。例如,在上面完成第一次开发迭代的基础,我们可以编写更多的测试来覆盖Salary类设计中的所有功能点:

  [TestMethod]

  void TestCalculationn()

  {

  std::unique_ptr pClass(new Salary(2003));

  int cases[4][2] =

  {{2003,1000},{2004,1300},

  {2005,1600},{2011,3100}

  };

  for(int i = 0; i < 4; ++i)

  {

  Assert::AreEqual(cases[i][1], pClass->GetSalary( cases[i][0]));

  }

  };

  在这里我们使用一个数组cases定义了多个测试用例,然后使用for循环对这些用例逐个进行测试。现在我们运行测试项目中的这些测试当然是没法通过的,所以这些测试就驱动我们去对开发项目中的Salary类进行重构,以使得这些测试可以通过:

  class Salary

  {

  public:

  Salary(int nBaseYear)

  :m_nBaseYear(nBaseYear)

  {};

  public:

  int GetSalary(int nNow)

  {

  return 300*(nNow - m_nBaseYear) + 1000;

  }

  private:

  int m_nBaseYear;

  };

 

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/

32/3<123>

关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网