Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 公开junit的虚拟URL_Java_Junit_Httpurlconnection - Fatal编程技术网

Java 公开junit的虚拟URL

Java 公开junit的虚拟URL,java,junit,httpurlconnection,Java,Junit,Httpurlconnection,我正在为一个类编写JUnit,该类为硬编码URL打开一个HttpURLConnection。如何公开任何将返回200响应的虚拟URL。像我可以创建任何虚拟服务器一样?如果这是一个单元测试(不是系统/集成测试),那么您应该使用来创建一个模拟的HttpURLConnection,并配置模拟以返回您需要的响应。com.sun.net.httpserver.httpserver可以这样做。 绑定到IP地址和端口号,并侦听来自此地址上客户端的传入TCP连接。当然,可以创建虚拟服务器。但问题到底是什么?你看

我正在为一个类编写JUnit,该类为硬编码URL打开一个HttpURLConnection。如何公开任何将返回200响应的虚拟URL。像我可以创建任何虚拟服务器一样?

如果这是一个单元测试(不是系统/集成测试),那么您应该使用来创建一个模拟的
HttpURLConnection
,并配置模拟以返回您需要的响应。

com.sun.net.httpserver.httpserver
可以这样做。
绑定到IP地址和端口号,并侦听来自此地址上客户端的传入TCP连接。

当然,可以创建虚拟服务器。但问题到底是什么?你看,如果你想要一个“虚拟”的URL,但是一个到那个URL的真实连接;那么URL一开始就不能是“虚拟的”。你需要一个组件坐在上面,准备好接电话和接听来电。所以最简单的答案就是一个愚蠢的傻瓜,他就是这么做的。我只是需要一个解决这个问题的方法。是否可以通过虚拟服务器或其他方式实现。到目前为止,我认为Jetty可以帮助我。我不能模仿“HttpURLConnection”,因为这段代码是用我正在编写测试用例的原始方法编写的。我只能将domainName和port作为参数传递给这个方法。好吧,那么我想说,除非你能重构代码,否则就不可能为代码编写一个真正的单元测试——测试的结果将始终取决于你使用的服务器是否做了正确的事情,而不仅仅是你的代码是否正确。是的,你是对的。我正在考虑一些内存服务器,因为在Jenkins的自动测试期间,该服务器应该可用。这里有一些可能性: