De ADO.NET DAL klasse testen
Het is belangrijk de DAL klasse te testen vooraleer die in ons project Webwinkel te gebruiken.
Probleem
Ons project Webwinkel is op zichzelf al ingewikkeld genoeg. We willen niet de complexiteit van een MVC applicatie meeslepen in het testen van een zelfgeschreven DAL klasse. Het is aangeraden om dat in een console applicatie te doen. We moeten tijdens het testen dan geen rekening houden met de complexiteit van het MVC framework.
Design
We maken in de Program
klasse van de Console applicatie een instantie van de model klasse en van de DAL klasse aan en testen in een logische volgorde de methoden van de DAL klasse.
Oplossing
using System; using System.Collections.Generic; namespace LerenWerkenMetAdo.Net { class Program { static void Main(string[] args) { // maak een instantie van het model Webwinkel.Models.OrderStatus model = new Webwinkel.Models.OrderStatus(); model.Name = "Bestelling is geplaatst"; model.Description = "De klant heeft de bestelling bevestigd online en heeft betaald."; Webwinkel.Dal.OrderStatus dal = new Webwinkel.Dal.OrderStatus(model); dal.Create(); Console.WriteLine("De feedback van de Create methode: {0}", dal.Message); List<Webwinkel.Models.OrderStatus> list = dal.ReadAll(); if (list.Count > 0) { foreach (Webwinkel.Models.OrderStatus item in list) { // de SelectAll lijst alleen die kolommen waarvoor in de kolom List // van het logisch model YES staat! Console.WriteLine("De orderstatus met naam {0} en met Id {1}", item.Name, item.Id); } } else { Console.WriteLine("De tabel Orderstatus is leeg."); } // Lees een rij in dal.ReadOne(); Console.WriteLine("De feedback van de ReadOne methode: {0}", dal.Message); Console.WriteLine("De orderstatus met naam {0} en met Id {1} en met beschrijving {2}", dal.Model.Name, dal.Model.Id, dal.Model.Description); // de beschrijving wijzigen model.Description = "De klant heeft op een correcte manier de bestelling bevestigd online en heeft betaald."; // de Id zit nog steeds in ons model dal.Update(); Console.WriteLine("De feedback van de Update methode: {0}", dal.Message); // verifieer als de update geslaagd is // Lees een rij in dal.ReadOne(); Console.WriteLine("De feedback van de ReadOne methode: {0}", dal.Message); Console.WriteLine("De orderstatus met naam {0} en met Id {1} en met beschrijving {2}", dal.Model.Name, dal.Model.Id, dal.Model.Description); // Rij deleten // de Id zit nog steeds in het model dal.Delete(); Console.WriteLine("De feedback van de Delete methode: {0}", dal.Message); list = dal.ReadAll(); if (list.Count > 0) { foreach (Webwinkel.Models.OrderStatus item in list) { // de SelectAll lijst alleen die kolommen waarvoor in de kolom List // van het logisch model YES staat! Console.WriteLine("De orderstatus met naam {0} en met Id {1}", item.Name, item.Id); } } else { Console.WriteLine("De tabel Orderstatus is leeg."); } Console.ReadLine(); } } }

2017-01-21 16:26:20