Archief - Unit tests in C++

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.

Gleke

Legacy Member
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

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;
		}

Is het mogelijk om in een test solution naar de DB te schrijven of gaat dit enkel in het main project?

Alvast bedankt
Glenn

pietje666

Legacy Member
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.

Gleke

Legacy Member
pietje666 zei:
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.

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.

kris

Legacy Member
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.
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