2016-08-03 22 views
0

我使用java和黃瓜,並有一個反覆使用所有我的方案的步驟。 我知道我可以重用場景,但如果我這樣做,我仍然有問題。Java和黃瓜如何重用場景多線程

假如我想重用的情況是:

給定用戶存在

步驟DEF是

@ContextConfiguration(classes = AppConfiguration.class) 
public class UserStepDef { 

    User user; 

    @ Given("^A user exists$") 
    public void a_user_exists() { 

     user = createUser(); 
    } 
} 

步驟定義創建用戶對象的實例並將其分配給稍後將在以下步驟中使用的字段「用戶」。 我可以訪問該字段的唯一方法是運行該步驟的類的實例 - > userStepDef.user。 我想在不同的功能文件中重複使用該步驟定義,但由於包含「user」的類是單例,因此無法並行運行測試。

有沒有更好的方法?我想念什麼?

回答

0

如果我正確理解你的問題,你想要的不是並行運行場景,而是在不同的步驟文件之間共享一些數據。是這樣嗎?

如果答案是肯定的,可以看看使用Cucumber的依賴注入方法。這將允許您在不同的java文件中共享類實例。

+0

嗨尤金,我已經使用依賴注入,我想要的是能夠並行運行測試,允許不同的場景使用相同的步驟定義,但不共享數據之間不同的場景。 例如我有情景1和情景2,他們都有「給定一個現有用戶」的步驟,我不想重複代碼,我只想在我的UserStepDefinition.java類中定義一次該步驟。我在那裏創建的數據:用戶實例不應該在方案1和方案2之間共享,每個方案都有自己的用戶。 – ttati