Niet echt nodig daar het GLS eigenschappen zijn die enkel maar voor bepaalde testen gebruikte worden. De vhUnitTest prefix zegt al genoeg dat het niet over een echten gaat.
.%New() naar constructor en private property van maken zodat het duidelijk is dat Dumper gebruikt wordt in deze klasse. Ingegevenkenmerken worden ook in constructor meegegeven en worden dus niet meer gewijzigd.
Hier wordt verondersteld dat het steeds een nieuwe context is. Als dezelfde context gebruikt wordt dan hebben we hier het risico dat er geen exceptie optreed en dat er nog gebruik gemaakt wordt van Berekeningsproblemen van een vorige melding waardoor de test onterecht kan slagen. We hebben hier dus een controle nodig dat de exceptie wel degelijk gegooid is.
DRY Exceptie staat er al in dus het zou eerder GeefDetail moeten zijn , om toch een duidelijk verschil te hebben tussen de string en stream implementatie is er voor GeefDetailStream gekozen
Ranking:
Minor
Classification:
Improvement desirable
##class(DOM.DomeinContext).Instance().GeefOrderAPI() Zou naar constructor mogen en property voorzien. Meegeven als constructorparameter heeft zijn gevolgen op afgeleide klassen die reeds met meerdere parameters werken, dus dat zou ik voorlopig niet doen.
Ranking:
Minor
Classification:
Improvement desirable
##class(DOM.DomeinContext).Instance().GeefOrderAPI() Zou naar constructor mogen en property voorzien. Meegeven als constructorparameter heeft zijn gevolgen op afgeleide klassen die reeds met meerdere parameters werken, dus dat zou ik voorlopig niet doen.
Bij deze test zijn de omschrijvingen steeds dezelfde. Misschien een idee om lijnnummers bij te vermelden. Mocht er een fout optreden, dan weet je op zijn minst het aantal dat goed gaat.
Ook hier zou ik meer informatie meegeven in de omschrijving bv lijnnr alsook bonnummer waarvoor deze uitgevoerd is. zodat er voldoende info beschikbaar is als er een fout optreed.
Volgens ik de code van de logger zie, kan je zonder problemen ##class(vhLib.Logger).%New() hergebruiken en 2x een Error method oproepen zonder problemen. Binnen de klasse is het dezelfde applicatie / groep.
We kunnen best niet veronderstellen dat er een crash is. Deze test bevestigd niet dat het gegarandeerd zal crashen... bv als er een verkeerde builder wordt gebruikt en er geen crash optreedt omdat de code niet doet wat we verwachten ?
De meegegeven parameter / data wordt ook in deze class meegegeven in de constructor en is dus al gekend en blijft ongewijzigd. Dumper kan dus zonder problemen naar constructor. Voglens mij kan de volledige Dumper...ToStream zelfs in een property gezet worden in de constructor van de klasse. Of kan dit opgelost worden via lazyload ?