Archief - Asserts in Java

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

matt77hias

Legacy Member
Java issue

Is er een mogelijkheid om via JUnit test te weten of er in een methode al dan niet een assert statement is uitgevoerd? (zonder de oorspronkelijke methodes aan te passen)

ps.: de asserts zijn verplicht en mogen dus niet vervangen worden

forloRn_

Legacy Member
Als je assertions aanzet (met -enableassertions of -ea) dan krijg je een AssertionError als het argument van je assert false is en en dan faalt je test, anders niet. Wat probeer je precies te bereiken eigenlijk?

matt77hias

Legacy Member
forloRn_ zei:
Als je assertions aanzet (met -enableassertions of -ea) dan krijg je een AssertionError als het argument van je assert false is en en dan faalt je test, anders niet. Wat probeer je precies te bereiken eigenlijk?

We zijn verplicht alle methodes in alle situaties te testen en sommige van die methodes moesten nominaal uitgewerkt worden (vandaar de asserts)

Emerxill

Legacy Member
Ik ga er van uit dat je asserts niet in je test-code zitten...
Je kan via een mockframework zoals mockito nagaan of een method al dan niet is uitgevoerd geweest.

matt77hias

Legacy Member
Emerxill zei:
Ik ga er van uit dat je asserts niet in je test-code zitten...
Je kan via een mockframework zoals mockito nagaan of een method al dan niet is uitgevoerd geweest.

de asserts zitten niet in de test-code, maar ik wil ze wel uitlokken via de test-code

das toch geen Junit?

forloRn_

Legacy Member
Als je code juist geschreven is, zou je die assertions net niet kunnen uitlokken.

Met assertions ga je gewoon bepaalde veronderstellingen doen in je code; als die veronderstelling toch fout blijkt te zijn, krijg je een AssertionError en moet je je code fixen.

matt77hias

Legacy Member
forloRn_ zei:
Als je code juist geschreven is, zou je die assertions net niet kunnen uitlokken.

Met assertions ga je gewoon bepaalde veronderstellingen doen in je code; als die veronderstelling toch fout blijkt te zijn, krijg je een AssertionError en moet je je code fixen.

ja en nee das het domme van nominaal programmeren
Je moet een preconditie in docu uitwerken en als iemand zich daar niet aanhoudt dan weet je niet wat het programma doet (in het geval van geen asserts) en een error in het geval van asserts. We mogen daar geen mouw aanpassen door condities in de code op te leggen.

Emerxill

Legacy Member
matt77hias zei:
de asserts zitten niet in de test-code, maar ik wil ze wel uitlokken via de test-code

das toch geen Junit?

nm, was Spring asserts en java asserts door elkaar aan't gooien.
Nagaan of een assert uitgevoerd is in JUnit is volgens mij vrij moeilijk aangezien het al afhankelijk is van uw runtime configuratie.

Ik zou het iig niet weten :)

matt77hias

Legacy Member
Emerxill zei:
nm, was Spring asserts en java asserts door elkaar aan't gooien.
Nagaan of een assert uitgevoerd is in JUnit is volgens mij vrij moeilijk aangezien het al afhankelijk is van uw runtime configuratie.

Ik zou het iig niet weten :)

tja heb nog eens rond gevraagd over het idee van nominaal en blijkbaar moeten methodes niet getest worden als aan de precondities niet voldaan is (asserts moeten later manueel verwijderd worden :o)


dus het hele concept van nominaal is echt stom dus

NeverwinterX

Legacy Member
matt77hias zei:
tja heb nog eens rond gevraagd over het idee van nominaal en blijkbaar moeten methodes niet getest worden als aan de precondities niet voldaan is (asserts moeten later manueel verwijderd worden :o)


dus het hele concept van nominaal is echt stom dus

Het concept van nominaal is eigenlijk eenvoudig en lui: je legt in documentatie voorwaarden op waaraan mensen die het gebruiken moeten voldoen en als ze er niet aan voldoen dan is het hun probleem.
Ik neem aan dat uw prof u die asserts laat gebruiken als een soort van extra documentatie van de voorwaarden tijdens het schrijven. Op zich horen die asserts niet echt bij het nominale paradigma omdat ge uw voorwaarden net niet gaat testen at runtime.

matt77hias

Legacy Member
NeverwinterX zei:
Het concept van nominaal is eigenlijk eenvoudig en lui: je legt in documentatie voorwaarden op waaraan mensen die het gebruiken moeten voldoen en als ze er niet aan voldoen dan is het hun probleem.
Ik neem aan dat uw prof u die asserts laat gebruiken als een soort van extra documentatie van de voorwaarden tijdens het schrijven. Op zich horen die asserts niet echt bij het nominale paradigma omdat ge uw voorwaarden net niet gaat testen at runtime.

blijkbaar..

Nu ik het zo bekijk vraag ik me af of het eigenlijk voordelen (behalve minder werk) heeft in vgl met al de andere paradigma?
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan