Active Directoryを使用してプロジェクトを集中的に処理しています。私はいくつかの単体テストをADに対して設定しました。そのうちのいくつかは模擬オブジェクトを使って実現しました。私はADに対して実際の呼び出しで達成しました。NextPasswordChangeDate関数をActive Directoryに対してユニットテストする方法
私のプロジェクトの機能の1つとして、いわゆる「ユーザープロファイル」を取得する必要があります。このユーザープロファイルは、ほとんどが "cn"、 "company"、 "employeeid"などの単純な属性で構成されていますが、私が入力しようとしているプロパティは単純な "NextPasswordChangeDate"ではありません。
これを得るための唯一の方法は、ドメインポリシーのmaxPwdAgeを取得し、この情報をpwdLastSetとともに使用することです。
私の質問:これをインテリジェントな方法で単体テストできますか?
- それはユニットテストでは、他の手段とハードコードで日付を見つける、検索アカウントとして自分のアカウントを使用してください:私は素晴らしいではありませんすべてが3つのオプション、思い付きました。このようにして私のコードを単体テストすることはできますが、パスワードを変更したので毎月ユニットテストを変更する必要があります。
- パスワードの有効期限が設定されていないアカウントを使用します。これは私のコードの正しさを実際にはテストすることができないので、無意味です。
- モックオブジェクトを使用して、正しいAPI呼び出しが行われていることを確認してください。このオプションでは、関数の動作の正確性をテストすることができますが、テストされたロジックは実際に単体テストにあるため、テストをパスしても正しいことをしていることは確かではありません。
あなたはどれをお勧めしますか?それとももっと良い選択肢がありますか?