如何通过testrunner测试WinRT MediaCapture API

时间:2014-06-17 19:03:32

标签: unit-testing windows-store-apps webcam

Windows商店应用程序在首次访问某些设备(如网络摄像头,麦克风等)时需要特殊的用户输入。在Visual Studio集成测试运行器或resharper的应用程序中,没有出现此类权限请求窗口。所以使用网络摄像头的测试最终会在调用InitializeAsync()时永远挂起:

[TestClass]
public class WhenRecordVideo 
{
    [UITestMethod]
    public void test1()
    {
        var captureSettings = new MediaCaptureInitializationSettings
        {
             AudioDeviceId = "",
             VideoDeviceId = deviceId.Id,
             StreamingCaptureMode = StreamingCaptureMode.Video,
             PhotoCaptureSource = PhotoCaptureSource.Auto
        };


        var capture = new MediaCapture();
        capture.InitializeAsync(captureSettings).AsTask.Wait()
    }

由于测试只在开发机器上运行,有没有办法使用registry / config hacks禁用该权限请求窗口?

1 个答案:

答案 0 :(得分:0)

您不应该在测试中测试MediaCapture。微软会自己解决这个问题。如果您想要单独测试您编写的代码 - 将照片捕获代码抽象为服务,并在测试中使用该服务的模拟实现,以便您可以提供确定性图像来测试您自己的代码。