【发布时间】:2021-01-08 10:06:51
【问题描述】:
我有一个TextBlockMouseDown 活动:
tb.MouseDown += (s, e) => {
ToSp.Children.Add(CreateTbAlp((s as TextBlock).Text, ToSp));
CheckAnswer();
};
在单元测试中我需要对其进行测试。我试过了:
TextBlockAutomationPeer peer = new TextBlockAutomationPeer(tb);
IInvokeProvider invokeProv = peer.GetPattern(PatternInterface.Invoke) as IInvokeProvider;
invokeProv.Invoke();
但在这种情况下,我得到了错误
System.NullReferenceException
这个也一样
typeof (TextBlock)
.GetMethod("MouseDown", BindingFlags.Instance | BindingFlags.NonPublic)
.Invoke(tb, new object[0]);
还有其他方法可以通过编程方式点击TextBlock 吗?
【问题讨论】:
-
WPF 和 MVVM 设计模式的全部目的是不必做这种不敬虔的黑客行为。您确定这就是您想要构建应用程序的方式并且这就是您想要测试它的方式吗?
-
或者,用不同的词问同样的问题:您为什么决定使用 Microsoft UI 自动化 API?
标签: c# wpf unit-testing