テストにはRhinoMocksを使用しています。静的をリダイレクトするのは得意ではありません。Molesの後継(編集:FakesツールはVS2012でしか利用できないと思いますか?それは臭い)またはTypeMockのような別のライブラリを使用することを検討しましたが、使用しないことを好みます。
HttpRequest オブジェクトを受け取るサードパーティ ライブラリがあります。私の最初の刺し傷は、次のものを使用することでした:
public void GetSamlResponseFromHttpPost(out XmlElement samlResponse,
out string relayState, HttpContextBase httpContext = null)
{
var wrapper = httpContext ?? new HttpContextWrapper(HttpContext.Current);
// signature of the next line cannot be changed
ServiceProvider.ReceiveSAMLResponseByHTTPPost(
wrapper.ApplicationInstance.Context.Request, out samlResponse, out relayState);
テストに行くまでは、すべて問題ないように見えました。ここでの本当の問題は、スタブアウトする必要があるということですwrapper.ApplicationInstance.Context.Request
。これは、古い学校の「ASP.NETはテストが好きではない」という苦痛のホスト全体につながります.
dynamic
C# でマジックを使用して静的メソッドをリダイレクトできると聞いたことがあります。ただし、HttpContext などでこれを行う例は見つかりません。これは可能ですか?