Oefening SchoolAdmin test null-waarden en TestCleanup
Bij de SchoolAdmin-opdracht H16_2 hebben we ervoor gezorgd dat je geen CourseRegistration
kan aanmaken zonder een student en/of cursus. Als dit gebeurt, dan wordt er een ArgumentException
geworpen.
Om dat te testen, hebben we bij AddCourseRegistration
een optie 0 (=null) toegevoegd bij de keuze van een student en de keuze van een cursus.
Met unit testing kunnen we dit nu beter testen. Hiervoor maak je een testproject TestSchoolAdmin
.
Maak daarin de klasse TestEmptyValues
.
Voorzie deze van een TestInitialize
. Maak hierin een student-object en een course-object naar keuze.
Maak 2 testmethoden:
TestNullValueCourse
: test hier het maken van eenCourseRegistration
met alsCourse
de null waarde.TestNullValueStudent
: test hier het maken van eenCourseRegistration
met alsStudent
de null waarde.
[TestCleanup] attribuut
Als je deze testen apart test, werken ze perfect. Maar als je ze allebei samen test, dan krijg je een foutmelding:
Message: Initialization method TestSchoolAdmin.TestEmptyValues.ArrangeTests threw exception. SchoolAdmin.DuplicateDataException: Nieuwe cursus heeft dezelfde titel als een bestaande cursus
We hebben inderdaad in SchoolAdmin ingesteld dat er geen 2 cursussen kunnen zijn met dezelfde titel. Dan wordt er een DuplicateDataException
geworpen. Deze foutmelding krijgen we omdat de code van TestInitialize vóór elke test uitgevoerd wordt. En hierdoor maken we telkens terug een cursus gemaakt met dezelfde titel.
Door een [TestCleanup]
toe te voegen kunnen we de titel van de cursus terug leegmaken. Deze code zal uitgevoerd worden ná elke test.
Last updated