Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio 在windows应用商店项目中对自定义控件进行单元测试_Visual Studio_Unit Testing_Windows Runtime_Windows Store Apps_Ui Testing - Fatal编程技术网

Visual studio 在windows应用商店项目中对自定义控件进行单元测试

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

我想对我为windows应用商店项目创建的自定义控件进行单元测试。就像“X为真时有一个按钮”这样简单的事情

然而,我甚至不能在测试上下文中实例化控件。每当我尝试调用构造函数时,我都会收到一个与未在UI上下文中运行相关的异常。我还无法创建以windows应用商店项目为目标的编码UI测试项目

  • 如何以编程方式实例化要测试的控件?如何创建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));
}