2017-06-14 133 views
0

通常,人們會嘗試儘可能簡化步驟定義類,並將大部分業務邏輯卸載到對象模型中。作爲一個經驗法則,我們嘗試將步驟定義類中的方法限制爲綁定步驟定義方法。在步驟定義類中包含非步驟方法是否可以接受?

但是,在某些情況下,多個步驟定義使用類似的代碼。一種方法是在相同的步驟定義類中以新方法提取此代碼。例如:

[When(".....")] 
public void WhenX() { 
    // Do custom logic 
    commonMethod(): 
} 

[When(".....")] 
public void WhenY() { 
    // Do custom logic 
    commonMethod(): 
} 

public void commonMethod() { 
    // Common code 
} 

另一種方法是將此代碼移到輔助類中。但是,由於只能在單個類中使用此代碼,因此將其作用域綁定到相應的類可能更有意義。

回答

1

是的,這是可以接受的。我們可以將非步驟定義保留在同一個類中。這不會導致任何問題。

0

步驟類只是簡單的舊Java類,所以你可以做任何你需要的東西。

我可能沒有在我的步驟定義類中的公共方法。我會宣佈它是私人的。如果應該從其他步驟使用它,我會將它寫入另一個類並在步驟定義類中使用它。這樣做的好處是可以更輕鬆地在步驟之間共享通用功能。

像這樣提取邏輯可以被看作是在步驟和被測系統(即您的生產代碼)之間創建幫助層的第一步。

使用輔助圖層,從而保持步驟爲一兩行,被認爲是一種好的做法。