2016-11-11 30 views
2

我想通過從步驟字符串作爲顯示在下面的代碼:如何傳遞參數「ABC」:「12」到黃瓜(Java)的步驟

test.feature

Then I pass a string ""abc" : "12"" 

test.java

@Then("I pass a string\"([^]*)\"") 
public void function(String data) 
{ 
    System.out.println(data) 
} 

其中我傳遞( 「」 ABC 「: 」12「 」)的字符串與正則表達式匹配(\「([^] *)\」)。所以理想的情況是功能應該打印

"abc" : "12" 

但是函數調用沒有發生。我的正則表達式有什麼問題嗎?可以做些什麼來達到預期的效果(即打印「abc」:「12」)

我是黃瓜java的新手,如果我的問題聽起來不對勁啞。

回答

1

正則表達式與文本不匹配,因爲您在第一個引號之前沒有佔用空間。

添加缺少的空間和使用.+到小組賽:

@Then("I pass a string \"(.+)\"") 
public void function(String data) 
{ 
    System.out.println(data) 
} 
+0

感謝@Florent ...這個正則表達式完全匹配我的要求。但我不明白你正在談論的空間... –

+0

文本'我傳遞一個字符串'...'與'我傳遞一個字符串'...'相比''在字符串後面有一個額外的引號。 –