ライフスタイルが "PerWebRequest"であるタイプに依存するコントローラのユニットテストを作成しようとしています。PerWebRequest LifeStyle依存のユニットテストコントローラ
のSystem.InvalidOperationException:HttpContext.Currentがnull
城には、次の例外がスローされます。 PerWebRequestLifestyleはASP.Netでのみ使用できます。
この問題を回避するためにHttpContext.Currentプロパティをどうやって模擬することができますか?
MVCContribのTestControllerBuilderを使用してこのコントローラを初期化しようとしましたが、効果がありません。
SymptomTopicController controller = new SymptomTopicController();
controller.WorkOrderFulfillment = workOrderFulfillment;
TestControllerBuilder controllerBuilder = new TestControllerBuilder();
controllerBuilder.InitializeController(controller);
依存関係は抽象化されています。コントローラーの依存関係は注入によって解決されます。問題は、単体テストの記述方法ではなくHTTPContextを模擬する方法です。 – Nick
依存関係は明らかに抽象化されていません(十分)。コントローラにはHTTPContextを使用する必要はありませんでした。なぜなら、コントローラはそれに強く依存しないし、記述する方法もあなたの場合であり、抽象化されていないということです。 –