我有兩個類似的措詞步驟,但仍有足夠的不同(我希望):JBehave調用錯誤@When一步
@When("I send $method '$url'")
public void sendMethodURL(
@Named("method") final String method,
@Named("url") final String url)
{
// stuff
}
@When("I send $method '$url' with JSON '$body'")
public void sendMethodURLBody(
@Named("method") final String method,
@Named("url") final String url,
@Named("body") final String inputJSON)
{
// stuff
}
然而,在我的故事,我有:
When I send POST '/blah/foo/bar' with JSON '["some", "json"]'
但它叫sendMethodURL
其中method
是"POST '/blah/foo/bar' with JSON"
和url是"[\"some\", \"json\"]"
。很顯然,我寧可撥打sendMethodURLBody
來代替。
我在這裏做錯了什麼?我如何讓JBehave區分這兩個步驟?
編輯:我意識到這是RegexStepMatcher匹配的第一個@當它發現匹配(它是sendMethodURL
)......但我怎麼能保持語法原樣,但區分這兩個,所以它不再符合兩個步驟?這些方法的順序似乎有效,但必須有一個不太脆弱的方法。
不錯。這是我正在尋找的。我意識到訂購代碼中的步驟「工作」,但感覺太脆弱了,以至於我無法適應。我想JBehave會處理這件事,但我還沒有找到它。謝謝! – Depressio