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

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

软件单元测试中的问题和解决方案

发布: 2009-4-09 10:45 | 作者: 不详 | 来源: 测试时代采编 | 查看: 44次 | 进入软件测试论坛讨论

领测软件测试网 利用单元测试,我们可以找出很多意想不到的问题,在Nunit对项目进行单元测试 过程中就查找出了很多隐藏的问题,下面是单元测试中遇到的问题与解决方案

1.TQL_Part表
1.1问题1
下面是项目中的代码:
  /**//// <summary>
        /// 根据taskid,获得对应的Part记录
        /// </summary>
        /// <param name="taskId"></param>
        /// <returns></returns>
        public WYEng.Model.TQL_Part GetPaperPart(int taskId)
        ...{
            SqlParameter[] parm = new SqlParameter[1];
            parm[0] = new SqlParameter(PARM_TASKID, SqlDbType.Int);
            parm[0].Value = taskId;
            WYEng.Model.TQL_Part part = new WYEng.Model.TQL_Part();

            using (SqlDataReader rdr = XPWY.DBUtility.DBHelperSQL.ExecuteReader(SQL_SELECT_PART, parm))
            ...{

                while (rdr.Read())
                ...{
                    part.PartCode = rdr.GetString(0);
                    part.SetCode = rdr.GetString(1);
                    part.SubjectId = rdr.GetInt32(2);
                    part.DisplayOrder = rdr.GetInt32(3);
                    part.Description = rdr.GetString(4);
                }

            }
            return part;
        }
写测试用例如下:
using System;
using System.Collections.Generic;
using System.Text;
using NUnit.Framework;
using WYEng.SQLServerDAL;

namespace WYEng.TestUnit
...{
    [TestFixture]
    public class TQL_Part
    ...{
        SQLServerDAL.TQL_Part part;
        WYEng.Model.TQL_Part p;
        [SetUp]
        public void CreateObject()
        ...{
            part = new WYEng.SQLServerDAL.TQL_Part();
            p=new WYEng.Model.TQL_Part();
        }

        [TearDown]
        public void DeleteObject()
        ...{
            part = null;
            p=null;
        }

        [Test]
        public void GetPaperPart()
        ...{
            //输入TaskId的值,然后可以获取其Part所有信息
            p = part.GetPaperPart(1); //正常情况
            Assert.AreEqual(p.PartCode, "6666");
        }
    }
}运行Nunit,状态条为红色,经检查发现原因是
model层中的TQL_PArt的description下的代码段有问题
 if (value != null && value.Length > 50)
                    throw new ArgumentOutOfRangeException("Invalid value for Description", value, value.ToString());
数据库中description的字段为Varchar(500),而这里只为50,现在更正为 if (value != null && value.Length > 50)
修正后,运行后的状态条为绿色。

 

延伸阅读

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

TAG: 单元 方案 软件


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

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