- 1、本文档共52页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
何时使用Mock Object * 何时使用Mock Object 1、真实对象没有确定的行为 2、真实对象难以配置 3、真实对象的一些行为难以控制其发生 4、真实对象运行较慢 5、真实对象具有用户界面 6、真实对象实际上并不存在(当需要和其他开发小组,或者新的硬件系统打交道的时候,这是一个普遍的问题) 如何实现Mock对象 * 使用mock对象进行测试的时候,我们总共需要3个步骤,分别是: 使用一个接口来描述这个对象 为产品代码实现这个接口 以测试为目的,在mock对象中实现这个接口 Easy Mock * 自己编写Mock还是比较麻烦的,目前有一些开源组织,专门编写常用的Mock Object, 主要是用来模拟那些在应用中不容易构造 (如HttpServletRequest必须在Servlet容器中才能构造出来) 或者比较复杂的对象 (如JDBC中的ResultSet对象) 从而使测试顺利进行。 Easy Mock测试servlet * 现有一个servlet:SampleServlet,里面有一个验证函数 isAuthenticated, 详见Container项目 SampleServlet.java 下面用mock object模拟HttpServletRequest类 Mock object优缺点 * 1、执行测试不需要运行的容器 2、测试速度快 3、没有测试容器和组件进行交互 4、没有测试组件的部署部分 5、需要熟悉被调用的API,这样才能模拟它,这个要求太高了 6、无法让你确信代码会在目标容器中运行 Cactus * Cactus是Apache出品,一个测试服务器端代码的Junit扩展测试框架,可以对运行于服务器内的组件进行测试,包括Servlet,JSP,Filter,EJB等。 通过JUnit运行Cactus测试时,Cactus首先将单元测试部署到服务器端,然后在服务器内部运行TestCase,因此,测试代码将完全在真实的服务器环境下运行。此外,有许多第三方测试框架都提供了对Cactus的集成。 Cactus * Cactus实现了对JUnit测试框架的无缝扩展,可以方便地测试服务端应用程序。Cactus可以在下面几种情况下使用: * 测试Servlet以及任何使用了像HttpServletRequest,HttpServletResponse,……这样的对象的代码。使用ServletTestCase。 * 测试Filter以及任何使用了像FilterConfig,……这样的对象的代码。使用FilterTestCase。 * 测试JSP 。使用ServletTestCase或JspTestCase。 * 测试Taglibs以及任何使用了像PageContext,……这样的对象的代码。使用JspTestCase。 * 测试EJB。ServletTestCase或JspTestCase或FilterTestCase。 Cactus测试servlet * 详见container项目的TestSampleServletIntegration.java 讨论: cactus测试servlet和用mock object测试servlet有什么不同?? Cactus/jetty集成进行测试 * 详见TestSampleServletIntegration.java 讨论: cactus测试servlet和用mock object测试servlet有什么不同?? Cactus/jetty集成进行测试 * import org.apache.cactus.extension.jetty.JettyTestSetup; import junit.framework.Test; import junit.framework.TestSuite; public class TestAllWithJetty { public static Test suite() { System.setProperty(cactus.contextURL, http://localhost:8080/test); TestSuite suite = new TestSuite(All tests with Jetty); suite.addTestSuite(TestSampleServletIntegration.class); return new JettyTe
您可能关注的文档
- 116114网站seo优化方案.ppt
- 11、swing结构与布局管理器.ppt
- 11、反射.ppt
- 11第九章JDBC基础知识.ppt
- 11第十三章JDBC基础知识.ppt
- 11计算机基础第一章-3系统组成.ppt
- 12 Struts2基础开发.ppt
- 12-上03.ppt
- 12.浏览器的使用与搜索引擎(非计算机专业使用).ppt
- 13 Hibernate基础编程.ppt
- 分析let s单元56ago2卷纸zheng unit56.pdf
- 塑胶材料其它分类原料pa9t 12.pdf
- md16x16数字媒体切换器设备.pdf
- 者参考项目发起人学科类型单位序列承包商修订页代码顺序典型.pdf
- 届世界天然气大会阿姆斯特丹2006add10288.pdf
- 期测试记录表每周weekly g1g6 journeys tests level 6 lesson26.pdf
- modernize-whitepaper现代化您应用程序白皮书.pdf
- anybackup产品典型案例分析.pdf
- 约克金融工程课程tfeslide32.pdf
- 广州市妇女儿童医疗中心历份教学药历01tjy.pdf
文档评论(0)