簡體   English   中英

使用 XML 的 Spring Cloud 合同。 嘗試根據請求指定模擬

[英]Spring cloud contract with XML. Trying to specify mock depend on request

在大多數情況下,我可以通過元素內容類型和其中的值來指定模擬。 我正在將它與 xpath 連接,一切順利。 但是現在我遇到了一個案例,在 wsdl 中,每個 xsd 都有相同的內容類型。 我不知道如何制定條件來指定具體的模擬。 我想這個 url 中每個 xsd 中唯一不同的是根元素。 你有什么解決辦法嗎? 你認為可以根據請求根元素以及如何指定模擬嗎? 這是我的合同的例子

Contract.make {
        request {
            priority(1)
            method 'POST'
            url '/ws/xxxx/xxx'
            body(new MatchingStrategy(anyNonEmptyString(), MatchingStrategy.Type.MATCHING))
            bodyMatchers {
                xPath("//*[local-name()='Chnl']/text()", new MatchingTypeValue(MatchingType.EQUALITY, "xxx"))
            }
            headers {
                header(contentType(), regex('application/.*xml.*xxxxxxx.*'))
            }
        }
        response {
            status 200
            body(fileAsBytes("xxxx.xml"))
            headers {
                contentType(applicationXml())
            }
        }
    }

我通過在 bodyMatcher 中為主 xml 元素添加新的 xpath 條件解決了我的問題。

xPath("//*[local-name()='Body']", new MatchingTypeValue(MatchingType.REGEX, ".*nameOfRootXmlElement.*"))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM