2011-04-29 3 views
1

я следующий код:усечение метод в Java

public class Search { 

    private Desktop desktop = new Desktop(); 

    @Before 
    public void baseState() { 
     BrowserBaseState baseState = new BrowserBaseState("silk4j.settings"); 
     baseState.execute(desktop); 

    } 

    @Test 
    public void searchNames() { 
     desktop.<BrowserApplication>find("//BrowserApplication").<BrowserWindow>find("//BrowserWindow").<DomButton>find("//INPUT[@id='edit-submit']").select(); 

    } 

} 

я смог укоротить метод испытания на это:

public class Search { 

    private Desktop desktop = new Desktop(); 
    BrowserApplication app; 


    @Before 
    public void baseState() { 
     BrowserBaseState baseState = new BrowserBaseState("silk4j.settings"); 
     app = baseState.execute(desktop); 

    } 

    @Test 
    public void searchNames() { 
     app.<BrowserWindow>find("//BrowserWindow").<DomButton>find("//INPUT[@id='edit-submit']").select(); 

} 

Как укоротить метод еще дальше? Я хотел бы быть в состоянии использовать что-то вроде этого:

win.<DomButton>find("//INPUT[@id='edit-submit']").select(); 

вместо этого коренастый долго:

desktop.<BrowserApplication>find("//BrowserApplication").<BrowserWindow>find("//BrowserWindow").<DomButton>find("//INPUT[@id='edit-submit']").select(); 

Пожалуйста вставьте весь класс в своем ответе?

+0

Дубликат: http://stackoverflow.com/questions/5835943/truncate-the-reference-to-class – mellamokb

ответ

2
public class Search { 

    private Desktop desktop = new Desktop(); 
    BrowserWindow win; 

    @Before 
    public void baseState() { 
     BrowserBaseState baseState = new BrowserBaseState("silk4j.settings"); 
     win = baseState.execute(desktop).find("//BrowserWindow"); 
    } 

    @Test 
    public void searchNames() { 
     win.<DomButton>find("//INPUT[@id='edit-submit']").select(); 
    } 
} 
+0

Даже если ваш код работает, он может быть усечен еще дальше: победа = baseState.execute (рабочий стол) найти ("// BrowserWindow"). приложение может быть полностью удалено. Вы хотите изменить свой пост? – Prostak

+0

@Простак вы правы. Я отредактировал свой ответ. –