2013-10-17 33 views
0

我有一个服务,有一个方法,使用apache httpclient休息电话。我想使用junit来测试呼叫,但我不想嘲笑呼叫但嘲笑服务器,它正在呼叫JUnit:嘲弄一个http服务器

我的问题是,是否有可能使用类似mockwebserver的模拟出服务器所以如果你向一个特定的URL发出请求,这将从服务中获取(而不是嘲笑服务),而不是去真正的服务器?

+1

你可以使用Jetty或'com.sun.net.httpserver.HttpServer'。然而,在我看来,这不会提高测试的质量(与使用模拟相比),但可能会影响其可读性和执行时间(更不用说诸如确保测试中使用的端口尚未使用等问题) – kryger

+0

所以你会建议嘲笑服务并嘲笑服务器的调用? – theBigOzzy

+0

是的,这会使你的测试成为一个纯粹的单元测试(不涉及合作者),但最终由你决定哪种方法更好,“感觉”是正确的。 – kryger

回答

0

HttpClient是一个接口,所以你可以在你的测试中返回一个模拟。

0

尝试Jadler(http://jadler.net),一个用于创建存根/模拟http服务器的开源库。它应该为您提供您需要的一切(我是其开发人员之一)。