Najlepszy / najprostszy Assert dla Javy 11

0

W którejś wersji 15-16 ZTCS wszedł wbudowany w język assert.
Wer 17 już wydana, ale nieprędko się cały ekosystem zacertyfikuje do niej.

W archaicznych wersjach używało się bibliotek, i znów jak często w Javie, jest ich po prostu za dużo.

Jakie rozważanie assertowe, ze skrajnie małymi zależnościami, warto polecić dla Javy 11?

W większych apkach nie chciałbym zabijać całego programu, tylko problematyczną funkcjonalność, i łapać w logi.

3

Szczerze mówiąc nie wiem o co autor pyta.

Czy chodzi o pisanie testów i asercje w stylu assertEqual(1, answer)? Czy może o asercje w samym języku assert price > 0.0 włączane opcją -ea?

Do testów polecam assertJ.

W aplikacjach nigdy nie korzystałem z assert'ów, jeżeli już to raczej z bibliotek do preconditions/postconditions (czyli "contracts"), są do tego jakieś liby ale widzę słabo to w Javie wychodzi: https://github.com/nhatminhle/cofoja

W Scali działa lepiej i tam faktycznie korzystałem od czasu do czasu z require i ensure (https://madusudanan.com/blog/scala-tutorials-part-29-design-by-contract/). W C# jest to również porządnie zrobione https://docs.microsoft.com/en-us/dotnet/framework/debug-trace-profile/code-contracts

Generalnie contract based programming zapoczątkowany przez autora języka Eiffel (Meyer bodajże) nie przyjął się w środowisku. Pomysł dobry ale wymaga dyscypliny i matematycznej precyzji, być może datego.

2

assert to jest dostępny od dawna:

https://en.wikipedia.org/wiki/Java_version_history

J2SE 1.4
Codename Merlin

The February 6, 2002 release was the first release of the Java platform developed under the Java Community Process as JSR 59. Major changes included:[21][22]

Language changes
assert keyword (specified in JSR 41)

1 użytkowników online, w tym zalogowanych: 0, gości: 1