メソッドが基本クラスのリストにオブジェクトを追加するかどうかをテストしたいと思います。
私の問題は、リストが保護されているため、テストの配置に入力できないことです。したがって、リストは空で、メソッドは特定のインデックスにオブジェクトを追加できません。
スタブ リストを作成し、公開せずに実際の基底クラス リストの代わりに使用するにはどうすればよいですか?
NUnit と Moq を使用しています。
私の問題を模倣するためのコードを次に示します。
public class Person
{
public string Name { get; set; }
readonly List<PhoneNumber> _numbers = new List<PhoneNumber>();
public void AddNumber(PhoneNumber phoneNumber)
{
_numbers.Add(phoneNumber);
}
}
public class PhoneNumber
{
public int Number { get; set; }
}
public class BaseClass
{
protected List<Person> Persons = new List<Person>();
}
public class DerivedClass : BaseClass
{
public void AddNumberToPersons(int index, PhoneNumber phoneNumber)
{
Persons[index].AddNumber(phoneNumber); // <-- Need to test if
// this gets called without errors
}
}
[Test]
public void AddNumberToPersons_WhenAddingNumberToPersons_NumberGetsAddedToList()
{
// I think I need to use a stub list or else the list is empty
// and index is out of range.
// Assert that number is added to the list.
}