Есть следущий компонент:
namespace Model
{
internal class Element
{
}
internal class Group
{
public Group ()
{
Elements = new HashSet<Element>();
}
public HashSet<Element> Elements
{
get;
private set;
}
}
public class Modeler
{
public int Do(Group group)
{
return 0;
}
}
}
и есть к нему UnitTest содержащий следующий код
...
var data = new Group_Accessor( );
data.Points.Add( new Element_Accessor() );
var modeler = new Modeler();
var actual = modeler.Do(data);
...
При выполнении строчки
data.Points.Add( new Element_Accessor() );
Появляется следующее исключение:
Unable to cast object of type 'System.Collections.Generic.HashSet`1[Model.Element]' to type 'System.Collections.Generic.HashSet`1[Model.Element_Accessor]'.
Не могу понять причину (но тут мой косяк — почти не копался).
В большей степени интересно если кто сталкивался — как решить эту проблему?
M>Не могу понять причину (но тут мой косяк — почти не копался).
M>В большей степени интересно если кто сталкивался — как решить эту проблему?
Не используйте accessor'ы для доступа к internal членам. Используйте
это
Я private-члены тестировать редко надо.
Здравствуйте, LF, Вы писали:
M>>Не могу понять причину (но тут мой косяк — почти не копался).
M>>В большей степени интересно если кто сталкивался — как решить эту проблему?
LF>Не используйте accessor'ы для доступа к internal членам. Используйте это
LF>Я private-члены тестировать редко надо.
Спасибо помогло ... хотя все таки надо будет попробовать разобраться с Accessor.
Проблему решить просто — использовать общедоступный интерфейс для тестов. Убьешь целую стаю зайцев. Если тесты получаются корявые — рефакторить (а вот и первый заяц).