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

В общем проблема называется
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 лайка

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

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

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

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

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

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

2 лайка

потом

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

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

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

2 лайка

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

1 лайк

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

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

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

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

2 лайка

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

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

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

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

На …
В какой строке ошибка?

java.lang.IllegalArgumentException: argument type mismatch

	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
	at org.junit.runners.parameterized.BlockJUnit4ClassRunnerWithParameters.createTestUsingConstructorInjection(BlockJUnit4ClassRunnerWithParameters.java:43)
	at org.junit.runners.parameterized.BlockJUnit4ClassRunnerWithParameters.createTest(BlockJUnit4ClassRunnerWithParameters.java:38)
	at org.junit.runners.BlockJUnit4ClassRunner$1.runReflectiveCall(BlockJUnit4ClassRunner.java:266)
	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
	at org.junit.runners.BlockJUnit4ClassRunner.methodBlock(BlockJUnit4ClassRunner.java:263)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
	at org.junit.runners.Suite.runChild(Suite.java:128)
	at org.junit.runners.Suite.runChild(Suite.java:27)
	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
	at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
	at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
	at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47)
	at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
	at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)

Я должен за вас решать в какой строке кода ошибка?
Ума в дебаге пройти пошагово не хватает?

Жесть. :zombie: