首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为WireMock构建Java项目

为WireMock构建Java项目
EN

Stack Overflow用户
提问于 2018-05-15 23:01:14
回答 1查看 3.4K关注 0票数 0

我正在使用wiremock来嘲弄服务。使用WireMock标准jar,我可以通过将.json文件放置在__files文件夹中来运行模拟api。

但是我想为WireMock创建一个Java项目。WireMock网站提供了入门片段。但我在基本项目设置中如何面对挑战。

以下是我遵循的步骤

  1. 在intellij中创建一个分级项目
  2. 为WireMock添加了gradle依赖项。这是我的build.gradle 依赖关系{ testCompile组:'junit',名称:'junit',版本:'4.12‘testCompile "com.github.tomakehurst:wiremock:2.17.0“}

3.创建一个包含以下代码的示例类,从WireMock网站获取此代码

代码语言:javascript
复制
import com.github.tomakehurst.wiremock.WireMockServer;

import static com.github.tomakehurst.wiremock.client.WireMock.*;
import static 
     com.github.tomakehurst.wiremock.core.WireMockConfiguration.options;

public class samplemock {

public static void main(String args[]){
    WireMockServer wireMockServer = new WireMockServer(options().port(9999));
    wireMockServer.start();
    stubFor(get(urlEqualTo("/test"))
            .willReturn(aResponse()
                    .withBody("Hello")));
}
}

但是,在执行这段代码时,我的ide控制台中出现了错误。

代码语言:javascript
复制
Exception in thread "main" java.lang.NoClassDefFoundError: com/google/common/io/Resources
at com.github.tomakehurst.wiremock.core.WireMockConfiguration.<init>(WireMockConfiguration.java:58)
at com.github.tomakehurst.wiremock.core.WireMockConfiguration.wireMockConfig(WireMockConfiguration.java:104)
at com.github.tomakehurst.wiremock.core.WireMockConfiguration.options(WireMockConfiguration.java:108)
at com.tech.samplemock.main(samplemock.java:11)
 Caused by: java.lang.ClassNotFoundException: com.google.common.io.Resources
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 4 more

不确定为什么会发生此错误。除了WireMock中的一些代码片段之外,java中没有任何示例项目可用。有一个示例web应用程序提供了这里,这对于构建简单的、陈旧的java框架并没有多大帮助。

感谢你的支持。

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-16 03:11:34

要删除该错误,请尝试:

  • 将testCompile替换为在build.gradle文件中编译 dependencies { testCompile group: 'junit', name: 'junit', version: '4.12' compile "com.github.tomakehurst:wiremock:2.17.0" }
  • 在运行之前使用“gradle build”(或在IDE中执行任务)进行构建

无论如何,看起来您要分配的端口被Wiremock忽略了。至少在我行刑的时候。

更新:我在启动服务器的行之后添加了WireMock.configureFor("localhost", wireMockServer.port());,它工作了!

代码语言:javascript
复制
    import com.github.tomakehurst.wiremock.WireMockServer;
    import com.github.tomakehurst.wiremock.client.WireMock;

    import static com.github.tomakehurst.wiremock.client.WireMock.aResponse;
    import static com.github.tomakehurst.wiremock.client.WireMock.get;
    import static com.github.tomakehurst.wiremock.client.WireMock.stubFor;
    import static com.github.tomakehurst.wiremock.client.WireMock.urlEqualTo;
    import static com.github.tomakehurst.wiremock.core.WireMockConfiguration.options;


    public class SampleMock {

        public static void main(String args[]){

            WireMockServer wireMockServer = new WireMockServer(options().port(9999));
            wireMockServer.start();
            WireMock.configureFor("localhost", wireMockServer.port());

            stubFor(get(urlEqualTo("/test"))
                    .willReturn(aResponse()
                            .withBody("Hello")));

        }
    }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50360276

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档