Похожие чаты

Who know JUnit 5? How can I eliminate the duplicate

code described in the question:

https://stackoverflow.com/questions/68830293/how-to-substitute-csvsourcefile-in-parent-abstracttest-to-use-different-file-so

3 ответов

23 просмотра

This is how I would organized those tests. Either one single dedicated suite for all the properties (personally I would prefer this approach): class PropertiesValuesTest { @ParameterizedTest @ArgumentsSource(PropsNumbers.class) void testProperty(Property prop, BigInt number, boolean exp) { var actual = prop.test(number); assertThat(actual).isEqualTo(exp); } static class PropsNumbers implements ArugmentsProvider { List<Argument> provide() { return List.of( // prop type, prop value, expected ??? Argument.of(new Jumping(), 100, true), Argument.of(new Jumping(), 200, false), // ..... ); } } } And if you ask if I prefer to not put test input params and expected values in a separate file - YES. Those separate files make reader to jump like a crazy across the file tree and glue it all back together to understand what are the requirements. Or another option - in case if I wanted this test case to be inherited by all specific property unit tests, then: abstract class PropertyTest<T extends Property> { protected abstract T propertyToBeTested(); protected abstract List<Pair<BigInteger, Boolean>> testValues(); @Test void testProperty() { var prop = propertyToBeTested(); testValues().forEach(number, exp -> { var actual = prop.test(number); assertThat(actual).isEqualTo(exp); }); } Even though annotations for data driven tests look sexy, those have limitations, same ones like any other java annotation. All annotation parameters must be known at compile time. There are ways to overcome this, but junit5 devs didn't used those. So you can't parameterize those annotations with something that will be defined by the subclass.

Похожие вопросы

Обсуждают сегодня

Всем привет! Имеется функция: function IsValidChar(ch: UTF8Char): Boolean; var i: Integer; ValidChars: AnsiString; begin ValidChars := 'abcdefghijklmnopqrstuvwxyzABCDE...
Евгений
44
Ну вот просто даже давайте вот как. Какой нибудь конкретный кейс, можете в пример привести, где бч работает и приносит прикладную пользу, а не просто что бы было? Не крипту.
Alexander Andreev
22
For all those that keep asking why no pump? why this ? and why that...? Please close ur ewt chart and open 2 others - TOTAL (total mc) and BTC.D (btc dominance). Maybe BTC a...
Inn3r_G
19
"Since pnut can flip FTM easily, I'm swapping my FTM to pnut and hoping for a easy x5-x10" Perfect recipe for disaster. NFA but chances are, you'll end up as exit liquidity ...
C. A.
7
объясните пожалуйста, почему функция не работает должным образом? вроде должно брать активное окно сравнивать его размер с размером экрана, и если есть совпадение = true прове...
JF
9
AMD status update? No longer in the plan but something might be around the corner later on Chinese partner? No longer in the plan. This market does not seem to be the top ...
Ben
6
Ready for some fun AND a chance to win TKO Tokens? Join us for exciting minigames in our Telegram group! 🕒 Don’t miss out—games start on today 25 October 2024, at 8 PM! Ge...
Milkyway | Tokocrypto
255
да кстати заметил всюда почему то всех сюда прёт, ни в одном чате столько ботов не прёт как сюда.. Может чота надо доработать?
REDis
15
Мне вот любопытно. Уже сколько времени имею соблазн купить макбук, ибо подозреваю что очень уж удобен будет в связке с другой техникой от эпл которая у меня есть, да и сам по ...
Not Yeromin
14
I get confused when people talk about the ‘bull market’ and the ‘next bull market’ as if anyone really has a clue what’s really going on in the world. First of all - there i...
Shah
1
Карта сайта