Выберите класс объекта Page во время выполнения в зависимости от типа драйвера - PullRequest
0 голосов
/ 27 мая 2018

Итак, я создаю инфраструктуру объектной модели страницы для мобильного приложения.У меня есть отдельные классы для объектов страниц IOS и Android.Я использовал шаблон проектирования Singelton для создания экземпляра драйвера в зависимости от типа ОС.Теперь я хочу, чтобы мой тестовый пример ссылался на класс объекта страницы во время выполнения в зависимости от типа ОС. Как я могу этого добиться.На данный момент у меня есть тестовый класс TestHomepage, класс объекта страницы, класс драйвера, который инициализирует драйвер на основе типа ОС, служебный метод для получения типа ОС из файла свойств onfig и файл свойств, в котором я храню тип ОС. КодЯ использую в объекте класса страницы Домашняя страница для инициализации драйвера

public Homepage() {
    driver = (AndroidDriver<AndroidElement>) TestBase.Instance;
}

// utility method and singleton design
public static String os(){
    try {
        String OS=getobject("Os");
        return OS;
        } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    return null;        
}


public static String OS=os();
public static WebDriver Instance=null;
public static void Initialize() throws IOException{
    if (Instance==null){
        if(OS.equalsIgnoreCase("Android"))
            Instance=capabilities();

        else if (OS.equalsIgnoreCase("IOS")){
            Instance=ioscap();
        }
    }

}

1 Ответ

0 голосов
/ 29 мая 2018

По моему опыту, когда необходимо

мой тестовый пример для ссылки на класс объекта страницы во время выполнения на основе типа ОС

Я использую Стратегия шаблон проектирования, потому что он позволяет мне

Определить семейство алгоритмов, инкапсулировать каждый из них и сделать их взаимозаменяемыми.Стратегия позволяет алгоритму варьироваться независимо от клиентов, которые его используют.

На основе значения public static String OS=os(); вы можете ссылаться на необходимые объекты страницы IOS или Android и методы их действий.

Еще один вариант, который может сработать и намного проще - Таблица отправки .Обратите внимание, что некоторым людям не нравится этот выбор дизайна, потому что он может привести к зависимости от техники.Также это нарушает принцип Open / Closed, и в случае, если вы планируете поддерживать множество платформ, это будет особенно вопиющим образом.

...