Visual studio 在windows应用商店项目中对自定义控件进行单元测试
我想对我为windows应用商店项目创建的自定义控件进行单元测试。就像“X为真时有一个按钮”这样简单的事情 然而,我甚至不能在测试上下文中实例化控件。每当我尝试调用构造函数时,我都会收到一个与未在UI上下文中运行相关的异常。我还无法创建以windows应用商店项目为目标的编码UI测试项目Visual studio 在windows应用商店项目中对自定义控件进行单元测试,visual-studio,unit-testing,windows-runtime,windows-store-apps,ui-testing,Visual Studio,Unit Testing,Windows Runtime,Windows Store Apps,Ui Testing,我想对我为windows应用商店项目创建的自定义控件进行单元测试。就像“X为真时有一个按钮”这样简单的事情 然而,我甚至不能在测试上下文中实例化控件。每当我尝试调用构造函数时,我都会收到一个与未在UI上下文中运行相关的异常。我还无法创建以windows应用商店项目为目标的编码UI测试项目 如何以编程方式实例化要测试的控件?如何创建WinRT UI同步上下文 如何以编程方式向控件发送“用户”命令事件 如何以编程方式实例化/拆卸整个应用程序 我找到了一种让非交互部分正常工作的方法:使用函数Wind
- 如何以编程方式实例化要测试的控件?如何创建WinRT UI同步上下文
- 如何以编程方式向控件发送“用户”命令事件
- 如何以编程方式实例化/拆卸整个应用程序
Windows.ApplicationModel.Core.CoreApplication.MainView.corefown.Dispatcher.RunAsync
很明显,对吧?然而,这仍然留下了如何模拟用户操作的问题
///在UI线程上运行操作,并阻塞结果
私有静态void用户界面(操作){
Windows.ApplicationModel.Core.CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync(
CoreDispatcherPriority,正常,
()=>动作()
).AsTask().Wait();
}
///在UI线程上计算函数,并在结果上阻塞
私有静态用户界面(函数操作){
var结果=默认值(T);
Ui(()=>{result=action();});
返回结果;
}
[测试方法]
公共无效幻灯片测试(){
//只允许在UI线程上构造滑块控件,所以将其包装到UI中
var slider=Ui(()=>newslider());
预期风险值=0;
//仅允许在UI线程上访问控件属性,因此相同的处理
arenequal(预期为Ui(()=>slider.Value));
}
我找到了一种让非交互部分正常工作的方法:使用函数Windows.ApplicationModel.Core.CoreApplication.MainView.corefown.Dispatcher.RunAsync
很明显,对吧?然而,这仍然留下了如何模拟用户操作的问题
///在UI线程上运行操作,并阻塞结果
私有静态void用户界面(操作){
Windows.ApplicationModel.Core.CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync(
CoreDispatcherPriority,正常,
()=>动作()
).AsTask().Wait();
}
///在UI线程上计算函数,并在结果上阻塞
私有静态用户界面(函数操作){
var结果=默认值(T);
Ui(()=>{result=action();});
返回结果;
}
[测试方法]
公共无效幻灯片测试(){
//只允许在UI线程上构造滑块控件,所以将其包装到UI中
var slider=Ui(()=>newslider());
预期风险值=0;
//仅允许在UI线程上访问控件属性,因此相同的处理
arenequal(预期为Ui(()=>slider.Value));
}