ho 2 classi:Come stub scrittura con NUnit in C#
- FirstDeep.cs
SecondDeep.cs
ho fatto semplice codice per esempio:
class FirstDeep
{
public FirstDeep() { }
public string AddA(string str)
{
SecondDeep sd = new SecondDeep();
bool flag = sd.SomethingToDo(str);
if (flag == true)
str = string.Concat(str, "AAA");
else
str = string.Concat(str, "BBB");
return str;
}
}
e
class SecondDeep
{
public bool SomethingToDo(string str)
{
bool flag = false;
if (str.Length < 10)
{
//todo something in DB, and after that flag should be TRUE
}
return flag;
}
}
Poi voglio scrivere unit test per il metodo "Adda":
class Tests
{
[Test]
public void AddATest()
{
string expected = "ABCAAA";
FirstDeep fd = new FirstDeep();
string res = fd.AddA("ABC");
Assert.AreEqual(expected, res);
}
}
E dopo che ho problemi, io non so come corretta stub scrittura per il metodo SomethingToDo nella mia classe di test. Ho sempre false. Dovrei solo tornare VERO. Ma come?
si può ancora lavorare con il vostro modello: introdurre 'bool previsto = false; SecondDeep sd = new SecondDeep(); bool actualResult = sd.SomethingToDo ("ABC"); Assert.AreEqual (excpected, actualResult); '...!? se questo non soddisfa le tue esigenze, probabilmente dovresti considerare di elaborare e migliorare la tua domanda! –
Hai eseguito il debug del tuo codice? Se sta accadendo nel database, non possiamo aiutarti perché non abbiamo dettagli su ciò che sta accadendo lì. – Jon
Sì, ho eseguito il debug del mio codice e dove ho scritto: "// todo qualcosa in DB, e dopo questo flag dovrebbe essere TRUE" Io uso class MembershipUser da .NET e questo metodo non può connettersi a DB, ecco perché dovrei ritorna vero su questo caso. – Smit