使用Wiremock进行存根 - WithFodyFile位置不是_files

时间:2018-01-11 09:40:49

标签: java stubbing wiremock

Wiremock文档指出 withBodyFile 中指定的文件的位置应位于 src / test / resources / __ files 中。我想在 src / test / resources / Testing_ABC / Testcase2 / myfile.xml中有文件。

有什么方法可以实现这个目标吗?我试过跟随,但它似乎不起作用!

stubFor(get(urlPathEqualTo("/abc")).willReturn
                (aResponse().withHeader("Content-Type",
                        "text/xml; charset=utf-8").withHeader
                        ("Content-Encoding",
                                "gzip")
                        .withBodyFile
                                ("src/test/resources/Testing_ABC/Testcase2/myfile.xml)));

但是,当我将文件放在src / test / resources / __ files / myfile.xml中并相应地更改路径时,它可以正常工作。

我只是想知道我是否可以在__files以外的资源中的其他目录中查看线程,只是为了在项目中拥有良好的资源结构。

3 个答案:

答案 0 :(得分:0)

这似乎是您在创建规则时需要配置的内容。尝试

@Rule
public final WireMockRule rule = new WireMockRule(WireMockConfiguration.wireMockConfig()
  .withRootDirectory("src/test/resources/Testing_ABC"));

然后你可以在测试中使用.withBodyFile("Testcase2/myfile.xml)

答案 1 :(得分:0)

我正在使用此Kotlin Config类来自定义根目录。 仍然要求响应文件位于__files目录中。

@Configuration
class Config: WireMockConfigurationCustomizer {
    override fun customize(config: WireMockConfiguration?) {
        config!!.withRootDirectory("customer-client/src/test/resources")
    }
}

@AutoConfigureWireMock

答案 2 :(得分:0)

对于Java和Spock,但仍使用__files文件夹

@TestConfiguration
public class WireMockConfig {

    @Bean
    public WireMockConfigurationCustomizer wireMockConfigurationCustomizer() {
        return config -> {
            config.withRootDirectory("src/integration-test/resources");
        };
    }
}

然后在任何ApplicationContext初始化程序存在的地方:

@SpringBootTest(classes = [Application.class, WireMockConfig.class], webEnvironment = RANDOM_PORT)
@ContextConfiguration()
abstract class WireMockIntegrationSpec extends Specification {
}

然后在您的测试中:

@AutoConfigureWireMock(port = 9089)
@Unroll
class ApplicationSpec extends WireMockIntegrationSpec {

    def "Some test" () {
    }
}

您的资源将从src/integration-test/resources/__files提供。 确保此目录结构存在