3

C#さまざまなファイルを読み取る小さなルーチンの統合テストを作成しようとしています。

そして、うっかり、そのファイルへのアクセスが拒否された場合の動作を指定するテストがあればいいのにと思いました。

テストサンドボックスでそれをシミュレートするための素晴らしく簡単な方法を知っている人はいますか?


  • これはを使用してエミュレートDirectorySecurity,できると思われますが、すべてのケースで正しく実行できるかどうかはわかりません。

    たとえば、テストを実行している現在のユーザーのアクセス ルールを削除できるとします (これには UAC / 昇格も必要です)。

    この場合、テストの終了後にこれらの権利を復元し、サンドボックスを正しく破棄する能力を失うと思います (なりすましやアクセス トークンの操作などに飛び込む必要はありません)。

  • おそらく、Molesまたは他のモックベースのアプローチでこれを行うことができますが、一般的な解決策 (たとえば、このテストをネイティブ アプリケーションに再利用するなど) に関心があります。

私は何が欠けていますか?これを行う簡単な方法はありますか?

4

1 に答える 1

4

セキュリティ設定を介してこれを達成したいと具体的に言っていないので、代わりに、別の場所でファイルへの排他的アクセスを取得してみませんか?

using(File.Open(path, FileMode.Open, FileAccess.ReadWrite, FileShare.None))
{
    //hold here to keep file locked
}
于 2013-02-08T13:30:51.277 に答える