一个简单的例子让你认识测试驱动

发表于:2012-12-20 10:01

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:circleoflife    来源:51Testing软件测试网采编

分享:

  第三天:

  第三天是重头戏,早早的开始编写测试用例,因为第三天的测试用例是最重要的。

  测试用例:都不为空的话,$old里面的元素被$new分别覆盖

  测试代码:

<?php
include(‘underTestFile.php’);
$new = array(
    'banana'   => 60,
    );
$old = array(
    'apple' => 60,
    'banana'   => 100,
    );

$ret = lz_array_merge($new, $old);
print_r($ret);
?>

  预期结果是:

<?php
$result = array(
    'apple' => 100,
    'banana'   => 100,
    );
?>

  那么我们开始编写代码:

<?php
function lz_array_merge($new, $old)
{
  if(count($new) == 0 || count($old) == 0)
return array();
foreach($new as $key => $value)
{
$old[$key] = $value;
}
return $old;
}
?>

  运行测试,发现三个测试用例都通过了,这让我们兴奋不已,第三天搞定了!但是依旧,我们要有一个重构的习惯,看一下有没有哪些可以去掉的代码。我们发现,判断数组是否为空是不需要的,那么我们就重构代码如下:

<?php
function lz_array_merge($new, $old)
{
foreach($new as $key => $value)
{
$old[$key] = $value;
}
return $old;
}
?>

  至此,我们三天的工作就完成了。一个完整的TDD流程也就走过一次了。

  这里也许你会问根据我们第三天的重构,我们前两天完全是没有必要的啊!没有产出一行代码。我不这么看,我认为前两天最大的贡献是我们产出了可被回归的自动化测试用例,以及测试驱动本身的流程,我们的代码得到了最好的保护。

  经过这个流程,也许你会对测试驱动的过程有一个比较好的认识。总结一下测试驱动的优点:

  ● 可回归的自动化代码产出

  ● 在开发前思考开发的调用

  ● 开发人员有了边界,每天的工作就是测试用例的完成

  ● 为其他开发人员提供了开发代码调用的示例

22/2<12
价值129的会员专享直播免费赠送,添加微信领取听课名额哦~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计

法律顾问:上海漕溪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2023
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号