t.me/atinfo_chat Telegram группа по автоматизации тестирования

Параметрические тесты ... Что почитать на русском?

webdriver
Теги: #<Tag:0x00007f9c4b935398>

(Gallagher) #1

В общем проблема называется
java.lang.IllegalArgumentException: argument type mismatch
Хочу данные для теста брать из excel … но что-то типы данных вообще не хотят дружить …

package ru.yandex;

import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collection;

public class reedExcel {
    public static Collection<Object[]> addresses() {
        Collection<Object[]> data = new ArrayList<Object[]>();

        try {
            FileInputStream file = new FileInputStream(new File("firstTxt.xls"));
            // рабочая книга HSSFWorkbook далее
            HSSFWorkbook wb = new HSSFWorkbook(file);
            HSSFSheet sheet = wb.getSheetAt(0); // Get Your Sheet.

            for (Row row : sheet) {
                Cell city = row.getCell(0);
                Cell street = row.getCell(1);
                Address address = new Address(city.getStringCellValue(), street.getStringCellValue());
                Object[] newAddress = new Object[] { address };

                data.add(newAddress);


            }


        } catch (IOException e) {

        }
        return data;


    }
}
package ru.yandex;

public class Address {
    public String city;
    public String street;

    public Address(String city, String street){
        this.city = city;
        this.street = street;
    }

}

package ru.yandex;

import org.apache.poi.ss.usermodel.Cell;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.openqa.selenium.WebDriver;

import java.util.Collection;

@RunWith(Parameterized.class)
public class TestDDT  {

        public static WebDriver driver;
        private WebDriverSettings settings;
        private Address address;

        @Parameterized.Parameters
        public static Collection<Object[]> data() {
            Collection<Object[]> data = reedExcel.addresses();
            return data;
        }

        public TestDDT(Cell cell) {
            this.settings = new WebDriverSettings();
            this.driver = this.settings.driver();
            this.address = address;

        }


        @Test
        public void test() {
            driver.manage().window().maximize();
            driver.manage().deleteAllCookies();
            Yandex yandex = new Yandex(driver);
            driver.get("https://yandex.ru/");
            // осуществляем поиск
            yandex.show ("text", address.city);
            // выводим температуру в консоль
            String temperature = yandex.temperature();
            // выводим температуру на экран
            yandex.displayTemperature(temperature);
            //driver.quit();

        }
}

Ничего не получается!

Код


#2

На какой строчке хоть падает?


(Maxim Andryushchenkov) #3

Я бы даже не стал читать это, а то через пару сообщений окажешься бесполезным))


(Gallagher) #4

Ну так и не читай, толку от тебя все равно нет!


(Gallagher) #5

Не соответствует тип аргумента похоже java.lang.IllegalArgumentException: argument type mismatch


(Vasiliy Rakshin) #6

Думаю, что вам подойдёт такое:
https://junit.org/junit5/docs/current/user-guide/#writing-tests-parameterized-tests-sources-MethodSource
А то что вы написали - я хз, вообще это законно или нет.


(Sergei) #7

Только из любопытства. Почему именно формат excel? Можно ведь csv, json, yaml, которые более дружелюбны к машинному чтению.


(Maxim Andryushchenkov) #8

Да мне вообще кажется что ваша деятельность похожа на симуляцию работы. Вопросы вы задаете наиглупейшие, рейзитесь на замечания, причем которые по делу написаны. Код - не ваше, дебаг - тем более. Архитектурные решения (да да, про Excel файлы) это вообще фейспалм.
И я вот прогнозирую что когда вы устанете говнокодить на ЯП вы же полезете в CI, да? В докер там, скрипты запуска, окружения…Вот вопросов то будет! Да причем каких “новых” и “актуальных”!
Вообщем пока что ваши темы больше похожи на флуд и вашими сообщениями в стиле

вы только усугубляете ситуацию.


(Gallagher) #9

потом

Я 4 использую … Junit


(Vasiliy Rakshin) #10

Где вы его используете? У вас ничего не работает же.
Зачем использовать устаревшее?


(Gallagher) #11

На это сообщение поступили жалобы от участников сообщества, поэтому оно временно скрыто.


(Maxim Andryushchenkov) #12

Ну видимо ты не достаточно опытен чтобы читать полезные сообщения от меня. Да и вообще, кто хоть раз понял с первого раза тот вопрос который ты пишешь? Тему свою даже в данной ветке почитай, а потом свой дескрипшен посмотри. Где там вообще намек на логику и конкретику? Посмотри как люди пишут темы, на которые овер 10 ответов именно “в кассу”. Там же у них все понятно, люди придумывают решения, делятся советами. А что в твоих темах? Сначала уточнений на 5 сообщений, а потом люди просто не берутся вообще писать ничего потому что видят в тебе базовое непонимание вопроса, неумение гуглить и простую лень. Может конечно для тебя завсегдатые тут - это задроты, которых ты спросишь любую херню и они тебе ответят, но я тебе могу точно сказать выражаясь на твоем уровне “в эту хату ты прописку не пройдешь”. Такие тут долго не задерживаются.


(Alexandr D.) #13

К вышесказанному стоит добавить, что даже после уточняющего вопроса мы так и не получили ответа.


(Gallagher) #14

ошибка которая возникает указана в первом посте …


(Gallagher) #15

Там нет никаких строк … то что возвращает addresses не соответствует тому что должен принять дата … там массив строк по идее, а тот отдает массив объектов …


(Dmitrii Demin) #16

/me взял попкорн


(Maxim Andryushchenkov) #17

b9t9B2YY3bM
Закрой ты тему уже, никто программированию тебя не будет здесь учить. И отметь как решение темы этого кота, который смотрит на тебя как на говно джуна.


(Alexandr D.) #18

В КАКОЙ СТРОЧКЕ КОДА ошибка возникает - вот в чем вопрос был… а не есть там строка или нет её.

Правильно выше человек написал. Не ваше это, бросьте это занятие.


(Gallagher) #19

На это сообщение поступили жалобы от участников сообщества, поэтому оно временно скрыто.


(Alexandr D.) #20

1,5 месяца это конечно сириосли.

А по теме, если вы не знаете, что делать, если слева массив строк, а справа массив объектов, то может эти 1,5 месяца прошли абсолютно впустую и надо начинать просто с самых азов программирования вообще, а не лезть в автоматизацию без знаний примитивных вещей?