SORU
14 Aralık 2008, Pazar


Nasıl birim FormsAuthentication kullanan ASP.NET MVC benim denetleyicisi test edebilirim?

Test odaklı bir şekilde ASP.NET MVC bir çözüm ile çalışıyorum ve başvuru formları kullanma benim kimlik doğrulaması için bir kullanıcı giriş yapmak istiyorum. Denetleyicisi ile bitirmek istiyorum kod şöyle görünür:

FormsAuthentication.SetAuthCookie(userName, false);

Benim sorum bu kodu nasıl haklı göstermek için bir test yazmanın ne anlamı var?

Bir şekilde SetAuthCookie yöntemi doğru parametreleri ile çağrıldı olmadığını kontrol edin.

Sahte/sahte bir FormsAuthentication enjekte herhangi bir yolu var mı?

CEVAP
14 Aralık 2008, Pazar


Bir arabirim ve bu mantık saklanması ve benim denetleyicisi arabirimi kullanmak olacaktır kapsayıcı bir sınıf yazarak başlamak istiyorum:

public interface IAuth 
{
    void DoAuth(string username, bool remember);
}

public class FormsAuthWrapper : IAuth 
{
    public void DoAuth(string username, bool remember) 
    {
        FormsAuthentication.SetAuthCookie(userName, remember);
    }
}

public class MyController : Controller 
{
    private readonly IAuth _auth;
    public MyController(IAuth auth) 
    {
        _auth = auth;
    }

}

Şimdi İAuth kolayca birim test düşürülmek ve denetleyici beklenen yöntemlerini çağırır doğrulayın. Sadece FormsAuthentication çağrısı delegeler çünkü FormsAuthWrapper sınıf birim test etmem yapmak gerekiyordu ne yapar (: - Microsoft garanti)).

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • RickardRick

    RickardRick

    9 Mart 2007
  • VitalyzdTv

    VitalyzdTv

    7 AĞUSTOS 2011
  • WHZGUD2

    WHZGUD2

    21 EYLÜL 2011