我有一種方法Login
"First class"
。現在在我的"Second class"
再次登錄需要完成,所以任何人都可以告訴我什麼是最簡單的方法來完成這項任務?最簡單的方法來調用一個相同的方法在兩個不同的類junit
- 應該在第二類中創建第一類的對象並調用第一類的方法。
- 我應該創建基類並擴展它嗎?
請提供任何例如,如果可能的 感謝
我有一種方法Login
"First class"
。現在在我的"Second class"
再次登錄需要完成,所以任何人都可以告訴我什麼是最簡單的方法來完成這項任務?最簡單的方法來調用一個相同的方法在兩個不同的類junit
請提供任何例如,如果可能的 感謝
好吧,讓我來回答這個問題在這裏:
class MyBase
{
void Login()
{
// TODO base defined login here
}
}
class FirstClass extends MyBase
{
// Define your methods in any order it is fine
void Login()
{
// TODO firstclass defined login here
}
void addTest()
{
// Addtest code here
}
}
int main()
{
MyBase base;
FirstClass firstClass;
base.Login() // Will call the MyBase method for Login
firstClass.Login() // Will call the FirstClass method for Login
}
所以的定義方法的順序,只要不是重要的,因爲你是很好的做他們。如果可能,請閱讀Java中的Inheritance,以便更清楚地瞭解您的方法。
你現在完全明白這一點..?如果是,那麼開始編碼,如果沒有,然後讓我知道,我們會更深入...
非常感謝您的答案,它有點解決我的查詢:) – user2376425
@NREZ - 這有什麼幫助?你已經定義了一些你稱之爲「MyBase」的東西,但是你並沒有將它用作基類,因爲沒有東西是從它繼承的。你已經定義了兩個不同的Login()方法,這是OP試圖擺脫的問題。 –
感謝您指出@vincebowdren ...我忘了擴展MyBase類,儘管不知何故OP和我瞭解它...我也試圖保持它作爲一個非常簡單的原型... – NREZ
我會建議實施Page Object Model,並重構登錄代碼是一個代表登錄屏幕的對象的方法。這樣,任何需要執行登錄的測試用例都可以輕鬆使用登錄代碼。該代碼將看起來像這樣簡化版本:
public class LogInScreen {
public void LogIn(String username, String password) {
userNameTextField.sendKeys(username);
passwordTextField.sendKeys(password);
loginButton.click();
}
public class MyTests {
@Test
public void testLoginNormalUser() {
String username = "userA";
String password = "badg3rs";
publicscreen.LogIn(username, password);
// carry on with the rest of the test.
}
@Test
public void testLoginAdminUser() {
String username = "userB";
String password = "3lk";
publicscreen.LogIn(username, password);
// carry on with the rest of the test.
}
通知的好處,你從這個獲得:
login()
方法。是的,這當然可以做個更好的實現... @ user2376425你應該試試這個... – NREZ
如果'First'和'Second'類的'Login'是相同的,那麼只需在基類中創建它,並在兩個類中使用它...也可以重寫此方法,如果它在孩子類...通過第二種方法,將涉及更好的繼承... – NREZ
嘿謝謝,快速回復:)。你能否告訴我是否可以在擴展基類時提及任何執行順序。例如:我在Base類中編寫了「login」方法並在「First Class」中進行了擴展,現在我已經在「First Class」中說了另一種方法(addtest),所以我可以提及它應該首先執行的任何執行順序然後(addtest) – user2376425
@ user2376425:這兩個類是什麼?他們的類是否包含junit測試,還是有些不同? –