ASP.NET開発でもユニットテストがしたい
概要
.Net Core(最近1.0がリリースされましたね)より昔のASP.NETは、IISとがっつり手を握り合っていて、スタティックなオブジェクトがいっぱいあります。
そんなスタティックなオブジェクトを使っていると、ユニットテストを書けません(書いてもぬるぽです)。
それをどうにかしようというのがこの記事です。
HttpContext
リクエストやレスポンスが入っている肝心かなめのオブジェクトです。
HttpContextBaseという抽象クラスがありますが、なんとHttpContextはこれを継承していません。
HttpContextの解決策
HttpContextBaseとHttpContextWrapperを使いましょう。
Public Sub New (httpContext As HttpContextBase)
New Injectee(New HttpContextWrapper(HttpContext.Current))
FormsAuthentication
Form認証にしたときに使うやつです。
FormsAuthenticationの解決策
用意されているラッパはないので、自前でラッパを用意しましょう。
Public Interface IAuthenticationWrapper
Sub SetAuthentication(userName As String, isPersistent As Boolean)
End Interface
Public Class AuthenticationWrapper
IAuthenticationWrapper
Sub SetAuthentication(userName As String, isPersistent As Boolean) Implements IAuthenticationWrapper.SetAuthentication
FormsAuthentication.SetCookeiAuthentication(userName, isPersistent)
End Sub
End Class
まとめ
ASP.NETでユニットテストしたいときは、
とにかくラッパ!!
Author And Source
この問題について(ASP.NET開発でもユニットテストがしたい), 我々は、より多くの情報をここで見つけました https://qiita.com/sengoku/items/597132ab707c77daf3ef著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .