C# 在WP7 Silverlight应用程序中单击单元测试按钮

C# 在WP7 Silverlight应用程序中单击单元测试按钮,c#,silverlight,unit-testing,windows-phone-7,C#,Silverlight,Unit Testing,Windows Phone 7,我的WP7(C#)应用程序没有使用MVVM模型。现在我想从我的单元测试代码中测试button2\u click函数,以便执行button\u click中的代码。请让我知道是否有任何这样做的可能性 private void button_Click(object sender, RoutedEventArgs e) { // Some code } 示例代码可能非常有用 谢谢, Mugu一般来说,不管您是否使用MVVM,UI代码都不是单元测试的好目标。您可以通过直接从测

我的WP7(C#)应用程序没有使用MVVM模型。现在我想从我的单元测试代码中测试button2\u click函数,以便执行button\u click中的代码。请让我知道是否有任何这样做的可能性

 private void button_Click(object sender, RoutedEventArgs e)
 {
         // Some code
 }
示例代码可能非常有用

谢谢,
Mugu

一般来说,不管您是否使用MVVM,UI代码都不是单元测试的好目标。您可以通过直接从测试中调用按钮单击处理程序来对其进行单元测试。如果处理程序使用的是
sender
,并且希望它是一个真正的按钮,那么您必须找出最佳的方法,没有人能够在不看到您的代码的情况下回答这个问题


在这种情况下,MVVM可以帮助您将代码移动到视图模型,并通过返回
ICommand
的属性将其公开,然后将该属性绑定到按钮的
命令
属性。通过使用这种方法,您可以封装原本嵌入到UI代码中的代码,并在其他命令(即菜单选项)中轻松重用代码。

我可以建议您使用UI自动化框架,例如,但我不会

我宁愿建议您使用成熟的模式(如MVVM、MVP、MVC等)将您的演示/域/任何逻辑与视图分离。您刚才遇到的问题是为什么这是一个好主意的原因之一。没有它,你会遇到更多的问题