Thread: Unit tests in C++
-
17-05-2014, 13:26 #1
Unit tests in C++
Hallo
Voor school moeten wij een project maken dat samen werkt met een database (phpMyAdmin)
Alles werkt schrijven naar de database etc..
Maar wij moeten ook unit tests schrijven en bij enkele tests gaat het fout
Eerst maak ik een nieuwe klant aan en dan ga ik deze naar de DB schrijven (wat in het main project volledig werkt ) maar als ik dit in het test project doe lukt dat niet dit is mijn code
Is het mogelijk om in een test solution naar de DB te schrijven of gaat dit enkel in het main project?Code:TEST_METHOD(TestKlantDAOSave) { Klant* k1 = new Klant("Voornaam","Achternaam","Straat","Stad",15,2500,15747898,7); klantDAO::SaveKlant(k1); int index = -1; vector <Klant*> allek = klantDAO::GeefAlleKlanten(); for(int i=0; i<allek.size();i++) { if(allek.at(i)->getVoornaam() == "Voornaam" && allek.at(i)->getAchternaam() == "Achternaam") { index = allek.at(i)->getKlantnr(); } } Klant* k2 = klantDAO::GeefKlant(index); Assert::AreEqual("Voornaam", k2->getVoornaam().c_str(),true); delete k1; delete k2; }
Alvast bedankt
Glennno votes
-
-
17-05-2014, 14:26 #2Member
- Registered
- 18/12/07
- Location
- Wijnegem
- Posts
- 1,158
- iTrader
- 3 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 0/5
Waarschijnlijk heeft uw unit test de configuratie voor uw database niet (config file of dergelijke)?
Wat is de foutmelding dat je krijgt?
Dat buiten beschouwing te laten zou ik geen unit tests schrijven die naar uw database gaan, en als je het toch doet laat je unit tests dan runnen tegen een aparte kopie van je database.no votes
-
17-05-2014, 16:43 #3
Ik krijg geen error , hij voert de unit test gewoon uit en als je in de database gaat zien is er geen test bij gekomen.
En de unit tests is een deel van het project en we hebben maar 1 stukje gekregen op de database. dus dit is de enige manier dat voor ons project kan denk ik.
Een geef of verwijder functie werkt wel.no votes
-
29-05-2014, 01:27 #4Member
- Registered
- 22/02/09
- Location
- leuven
- Posts
- 27
- iTrader
- 0
- Mentioned
- 0 Post(s)
Ik denk een fout te zien :
k2 kan null zijn : met een sub-optimaal resultaat.
Ter illustratie :
#include <iostream>
class Klant {
public:
Klant() { i = 1; }
int getBla() { return i; }
private:
int i;
};
int main() {
Klant *klant = 0;
klant->getBla(); //exceptie
return 0;
}
Reactie is langs de kwestie maar je hebt er misschien iets aan.no votes

