我是靠谱客的博主 迅速人生,最近开发中收集的这篇文章主要介绍java 单元测试 网络请求_java – 对进行URL调用的servlet进行单元测试,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

我想为servlet类编写单元测试,该类通过java.net.URL调用Web服务.

我可以创建模拟请求和响应对象,以便轻松地发送到servlet的doGet方法(使用junit上的实用程序员文本中的技术),即创建MockHttpServletRequest,MockHttpServletResponse,并将这些传递给doGet.

我遇到问题的部分是在servlet中打开的URL.

现在,我只是在调用打开URL的函数并返回一个字符串(生产代码)和调用返回的函数之间进行选择,该函数直接返回一个固定URL的字符串(测试代码)

理想情况下,我想要一个doGet方法,其中测试代码是不可见的 – 在进行网络访问的函数和直接返回字符串的函数之间的选择对于doGet应该是透明的.

我可以想到实现这一目标的多种方法,但没有一种感觉正确.

>示例1:将函数包装在具有testOn boolean和setTestMode方法的类中; junit init可以将testMode设置为true,默认为false. testOn决定调用哪个方法.消极的是,我需要一个新的课程,似乎它可能会失控.

>示例2:有两个实现网络访问的类,其中一个是mock;让junit重新加载mock类,生成代码加载常规类(或以某种方式将生产类重新映射到mock类).否定:不确定如何做到这一点;看起来很笨拙.

>示例3:有一个带有静态字段的类,指示我是否要使用模拟,并根据字段值调整servlet中的URL访问.否定:感觉就像全局变量.

>示例4:扩展URL,如果我只切换到URL(但java.net.URL是最终的),生产代码将正常工作.

我通过上午的搜索找不到合适的答案,因此我转向了SO的集体智慧.

谢谢,

阿德南

ps – 我应该提到我不必使用java.net.URL,任何等效的东西都可以.

最后

以上就是迅速人生为你收集整理的java 单元测试 网络请求_java – 对进行URL调用的servlet进行单元测试的全部内容,希望文章能够帮你解决java 单元测试 网络请求_java – 对进行URL调用的servlet进行单元测试所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(46)

评论列表共有 0 条评论

立即
投稿
返回
顶部