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

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

测试驱动开发实践——重构篇

发布: 2009-6-26 10:08 | 作者: 不详 | 来源: 领测软件测试网采编 | 查看: 91次 | 进入软件测试论坛讨论

领测软件测试网 前一篇文章《测试驱动开发实践-入门篇》我们我们讲了一些基本的测试驱动开发流程:

  1、写单元测试使他亮红灯

  2、写代码使测试变成绿灯

  3、重构代码

  接下来我们需要开始重构了,大家有可能会问,为什么需要重构,什么时候开始重构。

  对与为什么需要重构,其实就是为了使代码结构清晰,去除一些重复的代码,比如我们执行sql语句操作,我们起初这样写:

Code
 1private connStr="server=.;database=TestDB;uid=sa;pwd=123"
 2public int Add(string loginName)
 3{
 4    int count = 0;
 5    using (SqlConnection conn = new SqlConnection(connStr))
 6    {
 7        conn.Open();
 8        SqlCommand cmd = new SqlCommand("insert(loginName) value('" + loginName + "')", conn);
 9        count = cmd.ExecuteNonQuery();
10        cmd.Dispose();
11        conn.Close();
12    }
13    return count;
14}
15
16public int Delete(string loginName)
17{
18    int count = 0;
19    using (SqlConnection conn = new SqlConnection(connStr))
20    {
21        conn.Open();
22        SqlCommand cmd = new SqlCommand("delete from LoginUsers where loginName='" + loginName + "'", conn);
23        count = cmd.ExecuteNonQuery();
24        cmd.Dispose();
25        conn.Close();
26    }
27    return count;
28}

  我们发现这里除了sql语句不一样之外,其他都是一样的,那我们就可以这样重构:

 1private int ExecuteSql(string sql)
 2{
 3    int count = 0;
 4    using (SqlConnection conn = new SqlConnection(connStr))
 5    {
 6        conn.Open();
 7        SqlCommand cmd = new SqlCommand(sql, conn);
 8        count = cmd.ExecuteNonQuery();
 9        cmd.Dispose();
10        conn.Close();
11    }
12    return count;
13}
14public int Add(string loginName)
15{
16    return ExecuteSql("insert(loginName) value('" + loginName + "')");
17}
18public int Delete(string loginName)
19{
20    return ExecuteSql("delete from LoginUsers where loginName='" + loginName + "'");
21}

延伸阅读

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

TAG: 开发 驱动 实践 重构


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

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