请斑竹解答。。
为什么这个帖子没有高手指点啊。实际中很多这种情况的,怎么在单元测试中验证这种操作啊。
QUOTE:
原帖由 shuzhongbo 于 2004-12-20 13:34 发表
如:Bool CreateUser()
{
insert into user(name,age)
values ("test",25);
return true;
}
例子比较简单,说明意思
如果返回的结果是True,则如何验证数据真的写入到数据库中?
我来答一下吧
先转贴一段文章:单元测试测试哪些代码?
单元测试通常不测试很简单的代码,一般也不测试“边界代码”。很简单的代码容易理解,例如Get/Set函数,这里解释一下“边界代码”。“边界代码”是指用于与外部系统交互的代码,例如用于处理用户界面的代码。数据库、文件、网络都可以看作是外部系统,用于读写数据库或文件、或访问网络的代码也可以看作是“边界代码”,这类代码应该独立出来,可以进行单元测试,但对这些代码的单元测试通常不能自动验证预期输出,而是需要人工察看。编程时,不要把普通代码与“边界代码”混在一起,例如,不要把各种运算直接写在界面类中,做到了这一点,绝大多数代码都可以进行单元测试。
你这个例子就是所说的测试边界代码。这种情况下,一般就是人工查看。如果把操作数据库的代码独立出来,人工查看的工作量并不多。另一种方法就是另外写代码,在执行了被测试程序后,读取数据库中相应的数据,然后判断是否正确。不过,还不如人工查看简单。
强
谢谢,我一直被这个问题缠绕。但是从目前的单元测试工具来看,都是根据输入然后把输出值跟预期结果作比较。
所以很多地方讲到单元测试的适合就自然讲到的单元测试工具,实际上很多单元测试是没有办法使用单元测试工具来进行的,必须自己构造驱动和桩函数。或者结合人工的方法来进行了。 本来就是,工具只是工具而已,迷信工具的测试人员决不是好的测试。何况白盒测试单元测试本来就是投入大的活,没有必要什么都要求用白盒来解决,毕竟我追求的是代码或者应用程序的质量而不是单元测试本身不是吗。
页:
[1]