私は現在、定義された時間にHttpContext.Current.User.Identity.Name
を使用しているプロジェクトの単体テストを書いています。残念ながら、私はテストを実行するときHttpContext
がnullであるため、テスト作業を行うことはできません。模擬HttpContext.Current.User.Identity.Name
私は既にThread.CurrentPrincipal = new GenericPrincipal(new GenericIdentity("rmllcc"), new string[0]);
のようなインターネット上で見つかった解決策を試しましたが、うまく動作しません。
私はForms Authenticate system
,xUnit
とMoq
を使用しています。私はコントローラをテストするのではなく、ユーザが特定の方法を使うたびにログを取っているところのRepository
です。どのように私はこれを達成することができますか?
ですから、リポジトリへのパラメータとしてのHttpContextを渡しますか? –
@DanielStackenlandいいえ、ただ使っています。私のコントローラからリポジトリを呼び出し、ログされたユーザの値と時間だけを記録してください。 – Sakuto
'HttpContext'をモックしないでください。代わりに、それがあなたが望むものの抽象化を作成し、それをあなたのリポジトリへのサービスとして渡します。あなたに何を求めているのかについての多くの疑問があります。そして、彼らの大部分がこれを示唆していることがわかります。 – Nkosi