не получается передача property из хелпера в тесты


(Алик Гилиздинов) #1

Добрый день! Возник довольно интересный случай: не получается передать параметры из файла .properties через хелпер( обрабатывающую обертку) в тесты. Тесты падают при запуске сразу. java+junit+webdriver

public class Main {

    public static String PageOpen;
    public static String Login;
    public static String Pass;
    public static String ContrINN;

    public static void main(String[] args) {


        FileInputStream fis;
        Properties prop = new Properties();
try {

    fis = new FileInputStream("D:/1/target/test.properties");
    prop.load(fis);
    param1 =prop.getProperty("PageOpen");
    param2 = prop.getProperty("Login");
    param3 = prop.getProperty("Pass");
    param4 = prop.getProperty("ContrINN");
} catch (Exception ex){ ex.printStackTrace(); }


    }
}

Это собственно сам хелпер.


(Sergey Korol) #2

Это не хэлпер. Это обычный console application, который читает проперти файл в переменные и... больше ничего не делает.
Рекомендую для начала почитать, как вообще пишутся utility классы, и как к ним в последствии обращаться. :wink:


(Алик Гилиздинов) #3

ну по идее мне эти переменные надо потом в тестах дергать.


(Sergey Korol) #4

Ну тогда начните с написания полноценного хэлпера. Являясь частью большого проекта, ваш выше приведенный код будет вести себя совсем не так, как вам того бы хотелось (как в случае со standalone запуском).


(Алик Гилиздинов) #5

А можно конкретный пример helper'a, если не сложно?


(Sergey Korol) #6

Конкретный пример - это взять и написать за вас?
Вот вам приблизительный шаблон:

public final SuperImportantUtilityClass {

        public static void performSomeGlobalAction(final String someData) {
                System.out.println(someData);
        }

        public static String handleSmth(int a, int b) {
                return String.valueOf(++a + --b);
        }

        private SuperImportantUtilityClass() {
                throw new UnsupportedOperationException("Illegal access to private constructor");
        }
}

(sidelnikovmike) #7

Посмотрите для работы с проперти файлами на библиотеку properties. Удобненько, красиво.


(Алик Гилиздинов) #8

шаблон и нужен был:slightly_smiling: гораздо легче понять материал по конкретному примеру. Спасибо!


(Sergey Korol) #9

Мне нравится Apache Commons Configuration. Позволяет создавать композитные конфигурации, не только для *.properties. Содержит методы получения типизированных значений, без дополнительной конвертации.