0

UI ブラック ボックス テストでは、特定のディレクトリを開く結果となる特定の UI インタラクションを検証する必要があります。Process.Start("Some Folder");

コードの実装はすでに単体テスト済みです。単体テストの実行中に、これへの呼び出しをモックして検証しましたが、UI は完全に統合されており、バインドが正しく設定されていることを確認する必要があります (それらは CommandParameter に依存しています)。バインドが見つからない場合、コンソールでエラー 40 が発生しますが、パラメーターが見つからないか間違っているコマンドの呼び出しは、実行時にのみ検出されます。

Process Explorer では、explorer.exe の開いているハンドルのリストが表示されますが、それらはすべてファイルとしてマークされており、Windows のタスク バーに開いているディレクトリとして直接表示されないファイルとディレクトリがたくさんあります。

4

1 に答える 1

0

良い。解決策は非常に些細なことだったので、私はびっくりしました。WinApi フックを使用して explorer.exe や ShellExecute WinApi 呼び出し、マネージド ラッパーにフックするなど、さまざまなことを試しました。次に、スクリーンショットの分析について考えました:/

WPF UI テストに White を使用しているため、それ自体が Microsoft の優れた UIAutomation フレームワークに大きく依存しており、UIAutomation は、自動化によってウィンドウを見つけるために必要なほぼすべてのことを実行できます。

 var desktop = AutomationElement.RootElement;
 foreach (AutomationElement element in desktop.FindAll(TreeScope.Children, Condition.TrueCondition))
 {
     if (element.Current.ClassName != "CabinetWClass")
     {
          continue;
     }
     Console.WriteLine("{0}, {1}",element.Current.Name, element.Current.ClassName);
 }

UIAutomationClient および UIAutomationTypes アセンブリを追加することを忘れないでください。using System.Windows.Automation;

于 2013-10-18T06:18:02.680 に答える