Ich habe 2 Klassen:Wie Schreib Stubmethode mit NUnit in C#
- FirstDeep.cs
SecondDeep.cs
Ich habe einfachen Code zum Beispiel:
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;
}
}
und
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;
}
}
Dann möchte ich Unit-Test für die Methode „AddA“ schreiben:
class Tests
{
[Test]
public void AddATest()
{
string expected = "ABCAAA";
FirstDeep fd = new FirstDeep();
string res = fd.AddA("ABC");
Assert.AreEqual(expected, res);
}
}
Und danach habe ich Schwierigkeiten haben, ich weiß nicht, wie richtige Schreibstummel für Methode SomethingToDo in meinem Test-Klasse. Ich habe immer falsch. Ich sollte nur TRUE zurückgeben. Aber wie?
Sie noch mit Ihrem Muster arbeiten können: introduce 'bool erwartet = false; SecondDeep sd = neu SecondDeep(); bool actualResult = sd.SomethingToDo ("ABC"); Assert.AreEqual (expected, actualResult); '...!? Wenn dies Ihre Bedürfnisse nicht berücksichtigt, sollten Sie überlegen, Ihre Frage zu erörtern und zu verbessern! –
Haben Sie Ihren Code debugged? Wenn es in der Datenbank passiert, können wir Ihnen nicht helfen, da wir keine Details darüber haben, was dort passiert. – Jon
Ja, ich debugged meinen Code, und wo ich schrieb: "// todo etwas in der DB, und nach diesem Flag sollte TRUE sein" Ich benutze Klasse MembershipUser von .NET und diese Methode kann nicht mit DB verbinden, deshalb sollte ich Gib in diesem Fall nur wahr zurück. – Smit