2014-03-28 31 views
5

因此,JBehave在第二步之後將步驟標記爲「正在等待」,並且「

我對JBehave有一個奇怪的行爲。我有一種情況,我需要一個StepDef結構如下所示:

Given some precondition 
When something happens 
And something else happens 
And yet something else happens 
And still one more thing happens 
And one more 
Then I expect some result 

據我所知,這是一個場景Stepdefinition一個有效的語法。但是,JBehave將第二個「And」標記爲「Pending」。如果我更改「And」語句的順序,它總是運行第一個「And」,並從第三個開始標記「Pending」。如果我把它寫這樣它工作正常:

Given some precondition 
When something happens 
When something else happens 
When yet something else happens 
When still one more thing happens 
When one more 
Then I expect some result 

看來,如果我的配置是限制的連續量「和」語句可以解釋。但是,我似乎沒有發現問題。我在這裏做錯了什麼?

+0

你可以用'@ Given','@ When'和'@ Then'註釋的方法提供一個[SSCCE](http://www.sscce.org/)來運行你的BDD場景並且重現你觀察到的行爲? –

+0

我將不得不上傳整個工作區。我會看看是否可以構建一個能夠複製錯誤的「較小」的程序。我不知道我是否可以「重新打開」賞金,但我會嘗試... – Martin

+0

這將花費你另一個-100代表提供另一個賞金。這是你的選擇,但我會盡力幫助。我一直在使用JBehave的'And ...'序列,它一直在爲我工作,所以我很好奇你的情況。 –

回答

0

很多事情都會導致「待處理」消息。我看到隱藏的空格(空格)在.story文件中時會導致錯誤,但不會在相應的步驟文件的方法中導致錯誤。如果你有第二個例子的故事,所有的「當」語句工作,然後採取這個確切的故事文件,並只將「當」的更改爲「和」(當然除了第一個)。這將消除它是空白的可能性。我假設你知道在任何情況下,所有步驟都以@When(「...」)開始(只是試圖消除所有選項)。只需向我們展示上面列出的每個步驟的方法標頭 - 我們不需要看到底層代碼。