2012-03-14 75 views
0

這個問題不是關於REST,而是關於使用@When在後續@Then中作出的調用的返回值。寫了一個JBehave的故事

我正在看使用JBehave來測試一些REST API的調用。首先出現的是一個post創建用戶

When I create a user with name Charles Darwin 

據我瞭解REST,這也是Atom api做什麼,該ID在Location頭返回,例如/user/22。那麼我想要說一些關於響應的東西。

Then user was created with a valid Id 

我可以在步驟類創建一個成員變量和存儲的響應有做到這一點,我以前也使用過這種方法,但是這是正確的方法是什麼?

回答

1

是的。需要在@Then方法中存儲可以聲明的數據。最簡單的方法是創建一個成員變量 - 但這意味着您的@ When/@ Then需要位於相同的Steps類中。另一種方法是讓所有步驟都使用共享數據對象,然後您可以使用一種方法將其設置爲另一種方法。如果你只是想要一些通用的東西,你可以做一個Map<String,? extends Object>作爲你的通用數據對象。然後,如果您使用多個線程運行,則將數據對象包裝在一個ThreadLocal中。

這就是我所看到的 - 數據對象應該使用@ BeforeScenario/@ AfterScenario方法來設置/清除。

相關問題