WEB开发网
开发学院软件开发C语言 WF单元测试系列3:测试Activity的行为 阅读

WF单元测试系列3:测试Activity的行为

 2010-10-01 08:19:39 来源:WEB开发网   
核心提示:上一篇中介绍了如何简单地测试Activity的行为,我们只是使用VSTS的单元测试工具,WF单元测试系列3:测试Activity的行为,捕获了一个期待的异常,这样简单的行为测试当然是不能满足我们的需求的,基于以上几点考虑(当然不是全部的),Mock Object Framework出现了,我们要进一步测试Activit

上一篇中介绍了如何简单地测试Activity的行为,我们只是使用VSTS的单元测试工具,捕获了一个期待的异常,这样简单的行为测试当然是不能满足我们的需求的,我们要进一步测试Activity的更多,更复杂的行为。

比如我们有一个LogActivity 负责写日志,任何调用它的结果等同于调用一个ILog接口的一个Write()方法。我们就要写一个单元测试,测试是否LogActivity的调用等同于对ILog接口的Write()方法的调用。

有的人不禁要问了,这样的测试如何做呢?我们的测试工具只支持Assert操作,难道我要去Check日志文件,看看两个日志是否相等吗?答案是否定的,我们不会这么做,因为这样还属于“状态测试”的范畴,而不是“行为测试”。

还好有人想到了这一点,提供给我们现成的工具,这就是Mock Object Framework。Mock Object Framework基于单元测试中的这样几个问题:

1.在一个庞大的系统中,成百上千个类共同协调完成一个功能。往往一个调用的背后,是几十个类在共同工作,而且很多类的创建很耗费资源和时间。在这样的情况下,运行一个测试的代价可想而知,何况我们每次对代码做一次改动,就要运行单元测试呢。

2.很多代码都需要调用外部资源,比如,读取配置文件,读取数据库,调用远程的Web Service等等。这样的操作很费时间,最主要的是依赖外部的资源。如果外部资源处了问题,测试将无法进行下去。

3.对系统的行为无法准确捕获。一个简单的调用,系统究竟调用了那些类的那个方法,调用了几次,做了几次查询,修改,等等,一系列的操作都无法准确测试,难以保证单元测试的严谨性。

基于以上几点考虑(当然不是全部的),Mock Object Framework出现了。它解决了这些问题,

1 2 3 4 5 6  下一页

Tags:WF 单元

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接