我有一个服务,有一个方法,使用apache httpclient
休息电话。我想使用junit
来测试呼叫,但我不想嘲笑呼叫但嘲笑服务器,它正在呼叫JUnit:嘲弄一个http服务器
我的问题是,是否有可能使用类似mockwebserver
的模拟出服务器所以如果你向一个特定的URL发出请求,这将从服务中获取(而不是嘲笑服务),而不是去真正的服务器?
我有一个服务,有一个方法,使用apache httpclient
休息电话。我想使用junit
来测试呼叫,但我不想嘲笑呼叫但嘲笑服务器,它正在呼叫JUnit:嘲弄一个http服务器
我的问题是,是否有可能使用类似mockwebserver
的模拟出服务器所以如果你向一个特定的URL发出请求,这将从服务中获取(而不是嘲笑服务),而不是去真正的服务器?
HttpClient
是一个接口,所以你可以在你的测试中返回一个模拟。
尝试Jadler(http://jadler.net),一个用于创建存根/模拟http服务器的开源库。它应该为您提供您需要的一切(我是其开发人员之一)。
你可以使用Jetty或'com.sun.net.httpserver.HttpServer'。然而,在我看来,这不会提高测试的质量(与使用模拟相比),但可能会影响其可读性和执行时间(更不用说诸如确保测试中使用的端口尚未使用等问题) – kryger
所以你会建议嘲笑服务并嘲笑服务器的调用? – theBigOzzy
是的,这会使你的测试成为一个纯粹的单元测试(不涉及合作者),但最终由你决定哪种方法更好,“感觉”是正确的。 – kryger