Ich habe diese statische Hilfsfunktion:Wie kann ich Einheiten testen, die VisualTreeHelper verwenden?
public static DependencyObject GetParentObject(DependencyObject child)
{
if (child == null) return null;
ContentElement contentElement = child as ContentElement;
if (contentElement != null)
{
var parent = ContentOperations.GetParent(contentElement);
if (parent != null) return parent;
var fce = contentElement as FrameworkContentElement;
return fce != null ? fce.Parent : null;
}
//if it's not a ContentElement, rely on VisualTreeHelper
return VisualTreeHelper.GetParent(child);
}
Es in einer realen Anwendung funktioniert, aber ich versuche, einige Unit-Tests für sie zu schreiben. Hier ist mein erster Versuch:
[Test]
public void GetParentObject_returns_immediate_parent()
{
var contentControl = new ContentControl();
var textBox = new TextBox();
contentControl.BeginInit();
contentControl.Content = textBox;
contentControl.EndInit();
var result = UIHelper.GetParentObject(textBox);
Assert.AreSame(contentControl, result);
}
Leider scheitert es daran, dass VisualTreeHelper
null zurückkehrt. Wie kann ich einen visuellen Baum nachahmen, der funktioniert?
Ich warf 'pageContent' zu' IAddChild' und ausgeführt, um den Betrieb direkt, anstatt sich auf die 'ToMaybeOf' verlassen und' Do': '((IAddChild) pagecontent) .AddChild (FixedPage);' –