У меня есть следующий параметризованный тестовый пример JUnit, в котором используется агрегатор, а также аргумент с прямой связью. Когда я запускаю его, я получаю следующую ошибку:
ParameterResolutionException: No ParameterResolver registered for parameter [java.lang.String arg1] in method [void PersonTest.testPersonGreeting(Person,java.lang.String)].
Я думаю, что JUnit не может знать индекс/столбец для аргумента сообщения, потому что PersonAggregator не указывает, сколько столбцов он использует. Есть ли способ заставить этот тест работать?
import org.junit.jupiter.api.extension.ParameterContext;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.aggregator.AggregateWith;
import org.junit.jupiter.params.aggregator.ArgumentsAccessor;
import org.junit.jupiter.params.aggregator.ArgumentsAggregator;
import org.junit.jupiter.params.provider.CsvSource;
import static org.junit.jupiter.api.Assertions.assertEquals;
class PersonTest {
static class PersonAggregator implements ArgumentsAggregator {
@Override
public Person aggregateArguments(ArgumentsAccessor accessor, ParameterContext context) {
return new Person(accessor.getString(0), accessor.getInteger(1));
}
}
@ParameterizedTest
@CsvSource({
"Alice, 30, 'Hello Alice!'",
"Bob, 40, 'Hello Bob!'"
})
void testPersonGreeting(@AggregateWith(PersonAggregator.class) Person person, String message) {
assertEquals("Hello " + person.name() + "!", message);
}
}
record Person(String name, int age) {}
Подробнее здесь: https://stackoverflow.com/questions/791 ... ct-binding
JUnit 5 ParameterResolutionException: смешивание агрегации с прямой привязкой ⇐ JAVA
Программисты JAVA общаются здесь
1731513002
Anonymous
У меня есть следующий параметризованный тестовый пример JUnit, в котором используется агрегатор, а также аргумент с прямой связью. Когда я запускаю его, я получаю следующую ошибку:
ParameterResolutionException: No ParameterResolver registered for parameter [java.lang.String arg1] in method [void PersonTest.testPersonGreeting(Person,java.lang.String)].
Я думаю, что JUnit не может знать индекс/столбец для аргумента сообщения, потому что PersonAggregator не указывает, сколько столбцов он использует. Есть ли способ заставить этот тест работать?
import org.junit.jupiter.api.extension.ParameterContext;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.aggregator.AggregateWith;
import org.junit.jupiter.params.aggregator.ArgumentsAccessor;
import org.junit.jupiter.params.aggregator.ArgumentsAggregator;
import org.junit.jupiter.params.provider.CsvSource;
import static org.junit.jupiter.api.Assertions.assertEquals;
class PersonTest {
static class PersonAggregator implements ArgumentsAggregator {
@Override
public Person aggregateArguments(ArgumentsAccessor accessor, ParameterContext context) {
return new Person(accessor.getString(0), accessor.getInteger(1));
}
}
@ParameterizedTest
@CsvSource({
"Alice, 30, 'Hello Alice!'",
"Bob, 40, 'Hello Bob!'"
})
void testPersonGreeting(@AggregateWith(PersonAggregator.class) Person person, String message) {
assertEquals("Hello " + person.name() + "!", message);
}
}
record Person(String name, int age) {}
Подробнее здесь: [url]https://stackoverflow.com/questions/79185686/junit-5-parameterresolutionexception-mixing-aggregation-with-direct-binding[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия