2

我有一个基于spark-framework的 REST-Service 。看起来像这样(简化):

public void init() {

    get(new Route("spark/favorites") {
        @Override
        public Object handle(Request request, Response response) {
            ExternalService exS= new ExternalService();             

            ArrayList<String> favs= exS.getFavorites();

            Gson gson = getGson();
            return gson.toJson(favs);
        }
    });
 }

现在我想为我的服务编写一些测试,看看我的 get/post/put/delete 是否符合我的要求。因此,我在测试期间将其部署在嵌入式 Jetty 上。

我现在面临的问题是我的服务依赖于外部 REST 服务。我想模拟对这些的所有调用(进行快速单元测试)。但我不知道如何在运行的服务中进行模拟。

这甚至可能吗?我应该切换到另一个 REST 框架吗?建议?

4

1 回答 1

0

这是一个集成测试,无论您的应用程序是与 webservice mocks 还是真正的 3rd 方 webservices 对话。单元测试是当你单独测试你的类时。

如果您想模拟外部 Web 服务,您需要将指向 3rd 方应用程序的链接设置为可配置的,并且有一个单独的配置仅用于集成测试。对于 web 服务模拟,您可以使用几个可用的模拟框架之一: https ://sourceforge.net/projects/soaprest-mocker

于 2012-11-18T23:01:57.223 回答