Visual Studio позволяет тестировать отдельные методы с помощью автоматически созданного класса accessor. Я написал тест частного метода, который компилируется успешно, но он не работает во время выполнения. Достаточно минимальная версия кода и теста:
//in project MyProj
class TypeA
{
    private List<TypeB> myList = new List<TypeB>();
    private class TypeB
    {
        public TypeB()
        {
        }
    }
    public TypeA()
    {
    }
    private void MyFunc()
    {
        //processing of myList that changes state of instance
    }
}    
//in project TestMyProj           
public void MyFuncTest()
{
    TypeA_Accessor target = new TypeA_Accessor();
    //following line is the one that throws exception
    target.myList.Add(new TypeA_Accessor.TypeB());
    target.MyFunc();
    //check changed state of target
}
Ошибка выполнения:
Object of type System.Collections.Generic.List`1[MyProj.TypeA.TypeA_Accessor+TypeB]' cannot be converted to type 'System.Collections.Generic.List`1[MyProj.TypeA.TypeA+TypeB]'.
Согласно intellisense - и, следовательно, я предполагаю, что цель-компилятор имеет тип TypeA_Accessor. Но во время выполнения это тип TypeA, и, следовательно, сбой добавления списка.
Есть ли способ остановить эту ошибку? Или, возможно, более вероятно, какие другие советы есть у других людей (я предсказываю, может быть, "не тестировать частные методы" и "не имеют модульных тестов, управляющих состоянием объектов" ).

