2014-08-29 27 views
1

有一個API調用,比如:如何編寫一個.feature文件,通過我無法控制的ID測試刪除?

public int deleteGroup(String groupIdentifier) throws Exception; 

我寫了一個.feature:

Scenario: Deleting an existing group (by its ID) successfully 
    Given I am authorized 
    And <groupid> is already stored in WAAD 
    When I call the delete group method for group <groupid> 
    Then group <groupid> should NOT be present in WAAD 

Examples: 
    | groupid | 
    | test.group1 | 
    | test.group2 | 

我如何能確保給定的UID是在數據庫中,如果我不能創建通過UID的入口?我可以按名稱創建一個組。

+0

這個測試的目標是什麼?我們想要驗證什麼?該組可以刪除?或者它可以被組ID專門刪除? – cdlf 2014-08-29 16:12:39

+0

目標是驗證任何組可以通過其組ID刪除。 – 2014-09-01 06:20:38

回答

1

寫您的情況是這樣的:

Scenario: Deleting an existing group (by its ID) successfully 
    Given I am authorized 
    And a group named "whatever" is already stored in WAAD 
    When I call the delete group method for the group named "whatever" 
    Then the group named "whatever" should NOT be present in WAAD 
  • 在步驟2中,創建組。
  • 在步驟3中,按名稱查找組,確定其ID,並通過該ID刪除它。
  • 在步驟4中,按名稱查找組並聲明它不在那裏。

這是我用過很多次的正常模式。它需要一些額外的查詢,但它讓你不必知道ID。

+0

抱歉沒有足夠具體,但情景是這樣給出的。 '成功刪除一個已經存在的組ID'(我修改了我原來的問題)。 – 2014-09-01 06:18:55

+0

我澄清說我的例子中的刪除是通過ID。 – 2015-08-22 11:53:12

0

我的一位同事提供了一個很好的解決方案。他建議有一個這樣的場景:

Scenario: Deleting an existing group (by its Id) successfully 
    Given I am authorized 
    And <groupname> is already stored in WAAD 
    When I call the delete group method for group with <groupname> by its ID 
    Then group <groupname> should NOT be present in WAAD 
Examples: 
| geroupname | 
| test.group1 | 
| test.group2 | 

有了這個方法,我強調的是,測試的實施應該由ID使用刪除,但該測試方法的參數是名字。所以我可以在WHEN創建並存儲其ID。

相關問題