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

  • DrePwn

    DrePwn

    22 Temmuz 2011
  • Hallucination Land

    Hallucinatio

    14 Ocak 2011
  • The Warp Zone

    The Warp Zon

    24 AĞUSTOS 2007