2016-03-16 61 views
0

我對BDD和生菜非常新穎,而且我不知道如何處理最好的問題。萵苣BDD - 在配置文件中定義的場景中的值

我想創建一個Lettuce測試套件,然後我可以針對不同的環境運行,其中場景中的一些參數對於每個環境都會有所不同。

因此,按照生菜文檔我有這個示例場景:

Scenario: Create correct config 
      Given I have IP "127.0.0.0:8000" 
      And I specify username "myuser" and password "mypassword" 
      When I connect to the server 
      Then I get return code 200 

在這種情況下,我將不得不更改爲每個環境的IP,用戶名和密碼。但這不實用,我希望能夠爲每個環境創建一些配置文件,並且它將包含這些參數的值。

我找到了關於terrain.py的信息,看到您可以在此文件中設置變量,您可以使用worldsteps.py訪問此變量。

因此,這將有可能重新字的情形是這樣的:

Scenario: Create correct config 
      Given I have a correct IP 
      And I specify correct credentials 
      When I connect to the sever 
      Then I get return code 200 

現在步驟定義例如,對於「I have a correct IP」你可以用world.correctIP將在terrain.py定義。

這將以我需要的方式工作,但我不相信這是正確的方式來做到這一點,如果terrain.py的目的是像這樣使用......或者有不同的方式處理這種情況?

回答

1

我會說隱藏實現細節是一個好方法。也就是說,I have a correct IP是比保留屬性文件中的詳細信息更好的方法。

BDD是關於溝通的。如果知道你使用了正確的ip就足夠了,那麼當你閱讀這個例子時,就不需要知道哪個ip了。

+0

感謝您的回覆!當談到在某個地方存儲「正確的IP」時,您認爲最佳實踐是什麼,請記住這可能需要根據測試運行的環境進行更改?對於生菜會使用terrain.py來達到這個目的是否有意義? –

+0

我不知道生菜,所以我不能說在這個回聲系統中合乎邏輯的地方。在Java中,我會考慮爲環境使用不同的屬性文件或不同的常量。我的目標是爲維護人員提供易於查找的內容,以便更新。我也會盡量避免重複價值。 –