Java 8 如何在wiremock中使用mappingsloader加载映射文件?
我通过记录服务器的事务创建了映射。现在我想使用我的json映射文件来加载映射。为此,我有以下代码:Java 8 如何在wiremock中使用mappingsloader加载映射文件?,java-8,wiremock,wiremock-standalone,Java 8,Wiremock,Wiremock Standalone,我通过记录服务器的事务创建了映射。现在我想使用我的json映射文件来加载映射。为此,我有以下代码: import com.github.tomakehurst.wiremock.WireMockServer; public class mockedTests{ public static WireMockServer mockingServer; public void loadMaps(){ mockingServer.loadMappingsUsi
import com.github.tomakehurst.wiremock.WireMockServer;
public class mockedTests{
public static WireMockServer mockingServer;
public void loadMaps(){
mockingServer.loadMappingsUsing(****);
}
}
我检查了wiremock代码,并且loadMappingsUsing
方法需要一个MappingsLoader
作为其参数。但是,我找不到正确创建MappingsLoader
的方法。我在文档中找不到任何内容,在网上也找不到任何示例或教程。此外,我一直使用WireMockServer
对象,而不是规则或WireMock
对象。有人知道我如何创建一个MappingsLoader
来加载我的MappingsJSON文件吗?我使用的是wiremock的独立版本。谢谢。,WireMock将在/src/test/resources
下查找文件。如果要在Java中创建WireMock实例,并在自定义位置创建文件,则需要传入一个选项()
对象,并附加.usingFilesUnderDirectory(“/path/to/files and mappings root”)
WireMockServer wm = new WireMockServer(options().usingFilesUnderDirectory("/path/to/files-and-mappings-root"))
如果您需要在从命令行启动WireMock时执行此操作,它将类似于:
$ java -jar wiremock-standalone-2.27.0.jar --root-dir "/path/to/files-and-mappings-root"
我认为您最初的问题可能是因为没有使用
options()
对象启动WireMock服务器或规则。您确定正在运行独立版本的WireMock吗?看起来您正在使用Java版本。你是如何启动WireMock的?我使用的是独立的Java版本。我通过在junit@BeforeClass
方法中运行mockingServer.start()
来启动服务器。这是我正在使用的版本:当我创建WireMockServer
时,它似乎忽略了默认位置,并且没有配置新位置的方法。或者我还没有找到。我必须使用WireMockServer
,因为其他方法与spring引导环境冲突,我无法更改。奇怪的是,它不从默认目录读取。它从任何地方都读不到。它只是启动服务器,没有加载任何地图。此外,令我失望的是,WireMockServer
对象没有.usingfilesinderdirectory()
方法。只有WireMockRule
有它。这对我来说也是非常意外的。您是否有一个/src/test/resources/
文件夹,其中包含与WireMockServer
代码所在位置或代码调用位置相关的映射和文件目录?您正试图使用创建WireMockServer
。使用fileunderdirectory()
如下:WireMockServer wm=newwiremockserver(选项().usingfileunderdirectory(“/path/to/directory”)代码>?第一个是。。。第二个不!我有目录,但我不知道options()。使用目录下的文件(“/path/to/directory”)
!我已经阅读了很多教程和示例代码,但这是我第一次看到options()
!让我试试,然后回来!好吧,愚蠢的问题。。。但是从哪里导入“options()”呢?我在com.github.tomakehurst.wiremock.client.wiremock.options
找到了一个静态文件,但它没有.usingfilesingdirectory()
。