私は2つのクラスを持っています:
- FirstDeep.cs
SecondDeep.cs
たとえば、簡単なコードを実行しました。
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;
}
}
と
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;
}
}
次に、メソッド「AddA」の単体テストを作成します。
class Tests
{
[Test]
public void AddATest()
{
string expected = "ABCAAA";
FirstDeep fd = new FirstDeep();
string res = fd.AddA("ABC");
Assert.AreEqual(expected, res);
}
}
その後、問題が発生しました。テストクラスのメソッドSomethingToDoのスタブを正しく書き込む方法がわかりません。私はいつも偽物を持っています。TRUE を返せばいいだけです。しかし、どのように?