PDA

View Full Version : [NUnit/C#]Effettuare test su CRUD


RaouL_BennetH
27-04-2009, 11:52
Ciao a tutti :)

Sempre per studio sto cercando di capirne un pò di più sul mondo dei test.

Quello che vorrei capire è come effettuare dei test per esempio su una insert (ma qualsiasi altra operazione sul db mi piò andar bene).

Grazie mille :)

RaouL.

gugoXX
27-04-2009, 12:43
Ciao a tutti :)

Sempre per studio sto cercando di capirne un pò di più sul mondo dei test.

Quello che vorrei capire è come effettuare dei test per esempio su una insert (ma qualsiasi altra operazione sul db mi piò andar bene).

Grazie mille :)

RaouL.

Cosa vuoi testare?
Un metodo che fra le altre cose fa anche una "Insert" (o qualunque altra operazione su database), e il cui risultato dipende da questa,
oppure il metodo che esegue la "Insert" stessa su Database?

RaouL_BennetH
27-04-2009, 13:00
Cosa vuoi testare?
Un metodo che fra le altre cose fa anche una "Insert" (o qualunque altra operazione su database), e il cui risultato dipende da questa,
oppure il metodo che esegue la "Insert" stessa su Database?

Ciao gugoXX :)

Inizialmente un metodo anche solo per una insert liscia e semplice;

Io al momento ho fatto questo ma mi sembra una cosa priva di senso:



[TextFixture]
public class TestExperiment
{

[Test]
public void testInsert()
{
Prova p = new Prova();
p.Name = "prova";

p.Insert();

Assert.AreEqual("prova", p.getName());
}
}

gugoXX
27-04-2009, 13:41
Proverei a leggere il risultato da Database. Ovviamente testare una insert senza la possibilita' di leggere cosa c'e' sul database e' difficile.

Qualcosa tipo


[Test]
public void testInsert()
{
Prova p = new Prova();
p.Name = "prova";
p.Insert();

Prova q = Prova.SelectByName("prova");
Assert.AreEqual("prova", q.getName());
}


Cosi copri anche un po' della Read, qualunque essa sia.
Qui ho supposto che ci fosse una static per restituire una nuova Prova leggendola da Database (Un po' come un costruttore, ma con un nome diverso)

RaouL_BennetH
27-04-2009, 13:47
Proverei a leggere il risultato da Database. Ovviamente testare una insert senza la possibilita' di leggere cosa c'e' sul database e' difficile.

Si, ho dimenticato di specificarlo ma in effetti il mio : "p.getName()" è una funzione che fa la select sul db.

Ho aggiunto anche una "conta i records" in modo da essere certo che la lista abbia un elemento in più, oltre ad essere certo che sia quello che ho inserito:



Assert.Greater(prova.GetAll().Count, 6);



Può andare almeno per iniziare ?

Grazie :)

RaouL.