在VS2005中集成了单元测试功能,但如何些单元测试呢?
看了微软提供的单元测试课程,都过于简单,调用要测试的方法,比对执行结果与预期结果的异同,判断是否成功.
我按照这个思路测试公司的项目,比如一个方法返回bool型参数,我就执行方法看返回结果是否为bool,就断言成功与否,上司说这样根本谈不上测试.请高人指教!

解决方案 »

  1.   

    以前VS2003时用过Nunit,当时头儿让我门些单元测试,也是这样搞的,结果没写大点就终结了,现在移到VS2005上了又让写,唉,真挠头!合格的单元测试很难吗?听一些理论专家说有测试驱动的软件开发模式,是真的吗?
      

  2.   

    最近也查了不少、关于些单元测试的资料,但都大同小异,
    差不多都是介绍Xunit等工具的如何实用,介绍一些属性的作用(如Nunti),然后举例一个简单的测试方法的单元测试,如+ - * /等简单计算。但在实际应用中远比他们举的例子逻辑复杂得多,
    比如一个更新数据库的例子,以插入一条数据为例,如何测试成功还是不成功?这里的逻辑应该是不复杂的,上司说,可以通过查询插入书记前后记录数的变化来加以断言。
    我听了后感到茫然,数据库记录数的变化怎么得到,靠人工查看数据库还是在些一个方法得到?
    如果靠人工查看数据库,那怎么在测试里断言?
    如果再写一个方法,那谁来保证这个新加的方法的是一定正确且成功的?逻辑循环!!我的意见是测试前有一个固定的测试数据库(涉及到操作数据库的),数据一定要再测试文档中说明,但上司又说,单元测试要做到重用性好,跟数据不能牵扯,在任何情况下(有点绝对)都要通用。我听了快晕死了,各位高手,特别是测试高手,说一下你们工作中是怎么搞测试用例的。
      

  3.   

    比如一个更新数据库的例子,以插入一条数据为例,如何测试成功还是不成功?这里的逻辑应该是不复杂的,上司说,可以通过查询插入书记前后记录数的变化来加以断言
    :
    在SqlServer中可以用系统函数@@IDentity,
    @@RowCount,来判断插入,更新是否成功.
    另外.Net 中也提供 Command.ExecuteNonQuery()函数的返回受影响的行数.
      

  4.   

    那我劝各位还多看点软件测试的书籍
    软件的测试要求很严格,而且有一套规范的程序
    http://www.aspxboy.com/859/default.aspx看看这个
      

  5.   

    Unit test the performance of specific pieces of code and verify that the code meets the defined performance objectives before moving on to integrated performance testing.
      

  6.   

    to:liangge()
    这篇文章我也看过了,上面说:
    编写单元测试是一种验证行为,更是一种设计行为。同样,它更是一种编写文档的行为。
    对于说:它更是一种编写文档的行为
    大家怎么理解的?
    一个成功的单元测试应该产生一大堆文档吗?上面说明测试的目的、测试数据、测试步骤、测试成功/失败的标志吗?
    就只针对一个测试方法,就可能要写N页多的文档,那这样做是不是单元测试的工作量太大了!