WEB开发网
开发学院软件开发VC 使用测试优先方法开发用户界面 阅读

使用测试优先方法开发用户界面

 2008-01-19 20:24:54 来源:WEB开发网   
核心提示:请注意,这里测试的数据都是mockEditor里的,使用测试优先方法开发用户界面(8),而且在UI进行添加操作后,还将mockEditor内部的状态与期待状态做了比较,我们使测试代码和外部复杂的资源隔离开来,同时也使我们能够从中既有代码中提炼出清晰的接口,CPPUNIT_ASSERT_EQUAL(MovieNamesW

请注意,这里测试的数据都是mockEditor里的,而且在UI进行添加操作后,还将mockEditor内部的状态与期待状态做了比较。

CPPUNIT_ASSERT_EQUAL(MovieNamesWithAddition.GetSize(), m_pEditor->GetMovies()->GetSize());
  CPPUNIT_ASSERT_EQUAL(LOST_IN_SPACE, m_pEditor->GetMovies()->GetAt(nIndex-1));

其他删除操作的测试跟添加类似,在此不做详述。至此,我们就完成了这个GUI应用程序的开发。所有的测试如图2所示:

图2

6、源码说明

本文附带的代码包括三个Project,分别是Movie、GuiTestFirst、AppMovieList.Movie是产品代码.GuiTestFirst是测试代码 。AppMovieList是使用Movie输出的产品代码而写的应用程序,它从MovieListEditor继承出一个新的影片管理类MyEditor。它主要是演示如何使用我们提炼出来的MovieListEditor接口 。例如你可以实现CXmlMovieListEditor,CAccessMovieListEditor等等。进入GuiTestFirst打开所有这些工程。AppMovieList运行如图3所示 :

图3

7、总结

a)、对GUI应用实施测试优先开发方法,这在测试驱动开发中并不是必须的,可根据开发的实际情况来选择。

b)、我们通过引入Mock Objects,我们使测试代码和外部复杂的资源隔离开来,同时也使我们能够从中既有代码中提炼出清晰的接口,使代码整洁可用。

8、参考资料

  • 《测试驱动开发实用指南(影印版)》David Astels
  • 《测试驱动开发(中文版)》Kent Beck
  • 《Endo-Testing: Unit Testing with Mock Objects》Tim Mackinnon, Steve Freeman, Philip Craig

上一页  3 4 5 6 7 8 

Tags:使用 优先

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