2017-06-19 37 views
-1

我有,我聲明的方法的情況再說優良做法是改變方法簽名

public String getData(WebDriver driver, int iRowNumber) 

我打電話從其他一些測試用例方法這個方法。現在我覺得有必要改變參數的數量並且包含第三個參數。顯然,它會在所有以前的測試用例方法中拋出錯誤。我如何處理這種情況?我不想創建另一個具有相同名稱和不同參數數量(多態性)的方法,因爲我也必須在以前的測試方法中使用修改後的方法。

有沒有辦法讓我照顧這個?

+0

你的IDE應該有一個重構「改變方法簽名*您可以在其中添加新的參數,並提供將任何現有的調用插入一個默認值。 –

+0

爲什麼不使用多態?或者你不需要* old *方法,所以在那裏沒有理由去測試它;或者它是需要的,那麼同時存在 –

+2

@CarlosHeuberger是沒有錯誤的,因爲具有相同名稱的方法和不同的參數是*重載*不是多態... –

回答

3

最好的解決方案是創建一個新的方法使用三個參數:

public String getData(WebDriver driver, int iRowNumber, Object third) 

這個方法應該有一個新的邏輯。舊的方法應該調用一個新的方法使用默認ARG:

public String getData(WebDriver driver, int iRowNumber) { 
    getData(driver, iRowNumber, DEFAULT_VALUE); 
}