मैं यूनिट परीक्षण के लिए नया हूं और मैं अपनी कुछ .NET सदस्यता सामग्री का परीक्षण करने की कोशिश कर रहा हूं।यूनिट टेस्ट Asp.net सदस्यता कैसे करें?
तो मैं अपने VerifyUser
विधि को जांचने की कोशिश कर रहा हूं जो जांचता है कि उपयोगकर्ता प्रमाण-पत्र मान्य हैं या नहीं।
public bool VerifyUser(string userName, string password)
{
bool valid = Membership.ValidateUser(userName, password);
return valid;
}
और अब हर बार मैं अपने इकाई परीक्षण यह विफल चलाएँ:
तो यह कि यह दिखता है। मुझे पता है कि मैं सही प्रमाण-पत्र और सामान में गुजर रहा हूं। फिर यह मेरे सामने आया कि शायद मेरी टेस्ट प्रोजेक्ट (जो कि मेरे वास्तविक प्रोजेक्ट के समान समाधान के तहत है) को कनेक्शन स्ट्रिंग और सामान के साथ अपनी web.config
फ़ाइल की आवश्यकता हो सकती है। या एक ऐप कॉन्फ़िगरेशन फ़ाइल हो सकता है क्योंकि यह एक एप्लिकेशन लाइब्रेरी प्रोजेक्ट है।
तो क्या मैं बस अपनी वास्तविक परियोजना से web.config
फ़ाइल कॉपी करता हूं और इसे एक दिन कॉल करता हूं? या मुझे केवल इससे भाग लेना चाहिए? या मैं बस रास्ता बंद कर रहा हूँ।
मेरा डेटाबेस मेरे डेटाबेस के साथ विलय सदस्यता के साथ एक कस्टम डेटाबेस का उपयोग कर रहा है। तो मेरी कॉन्फ़िगरेशन फ़ाइल में मुझे एक प्रबंधक प्रदाता और एक भूमिका प्रदाता निर्दिष्ट करना था।
:
यह
तरह[Test]
public void TestVerifyUser()
{
AuthenticateUser authenitcate = new AuthenticateUser();
bool vaild = authenitcate.VerifyUser("chobo3", "1234567");
Assert.That(vaild, Is.True);
}
इसके अलावा बाद में मैं अपने asp.net MVC के ActionResult तरीके से एक में है (लॉग देखें सटीक होना करने के लिए) कैसे मेरे इकाई परीक्षण लग रहा है मैं इस किया है फॉर्म प्रमाणीकरण। रीडायरेक्टफ्रॉम लॉग इन पेज (लॉगिन वैलिडेशन.उसरनाम, याद रखें);
तो अब मैं एक यूनिट टेस्ट कैसे लिख सकता हूं जो उपयोगकर्ता करेगा जो करेगा। मान लें कि वे होम पेज पर शुरू होते हैं और फिर लॉगिन पेज पर क्लिक करते हैं और सफलतापूर्वक लॉग इन करते हैं। मैं उन्हें होम पेज पर रीडायरेक्ट करना चाहता हूं।
मुझे यकीन नहीं है कि कोड में इसका प्रतिनिधित्व कैसे किया जाए। मुझे पूरा यकीन है कि RedirectFromLoginPage
काम करता है और अब मैं वास्तव में परीक्षण कर रहा हूं। मैं इस तथ्य का परीक्षण कर रहा हूं कि मेरे पास 3 चीजें हैं जो लॉगिन ActionResult
विधि में हो सकती हैं।
- उपयोगकर्ता लॉग इन करता है और कहां से आया है उसे वापस भेज दिया जाता है।
- उपयोगकर्ता लॉगिन करने में विफल रहता है और
LoginView
पर वापस भेज दिया जाता है और त्रुटि संदेश देखता है। - उपयोगकर्ता ने सुरक्षित पर जाने की कोशिश की है और लॉगिन पेज पर रीडायरेक्ट कर दिया गया है। अगर लॉगिन सफलतापूर्वक रिटर्न यूआरएल के माध्यम से सुरक्षित पृष्ठ पर रीडायरेक्ट किया जाएगा।
तो मैं देखने के लिए अगर इन काम के रूप में वे चाहिए एक परीक्षण करना चाहते हैं। तो यही कारण है कि मुझे उपयोगकर्ता को होम पेज की तरह आने की आवश्यकता है ताकि यह देखने के लिए कि क्या उन्हें बाद में रीडायरेक्ट किया गया है और यदि वे एक सुरक्षित पृष्ठ से आते हैं तो वे बाद में उस पर रीडायरेक्ट हो जाते हैं।
मैं एनयूनिट 2.5 और वीएस -2008 प्रो का उपयोग करके भी हूं।
यही वह है जिसे मैं परीक्षण करने की कोशिश कर रहा हूं। मैं उस हिस्से में हूं जहां मैं यह देखने की कोशिश कर रहा हूं कि उपयोगकर्ता मान्य है या नहीं (अगर कथन)। मुझे इसका कोई परीक्षण नहीं है कि इसका परीक्षण कैसे किया जाए।
public ActionResult Login(string returnUrl, FormCollection form, bool rememberMe)
{
LoginValidation loginValidation = new LoginValidation();
try
{
UpdateModel(loginValidation, form.ToValueProvider());
}
catch
{
return View("Login");
}
if (ModelState.IsValid == true)
{
bool valid = authenticate.VerifyUser(loginValidation.UserName, loginValidation.Password);
if (valid == false)
{
ModelState.AddModelError("frm_Login", "Either the Password or UserName is invalid");
}
else if (string.IsNullOrEmpty(returnUrl) == false)
{
/* if the user has been sent away from a page that requires them to login and they do
* login then redirect them back to this area*/
return Redirect(returnUrl);
}
else
{
FormsAuthentication.RedirectFromLoginPage(loginValidation.UserName, rememberMe);
}
}
return View("Login");
}
माफ करना, मैं मैं में मजाक के बारे में पढ़ा "विन्यास दृष्टिकोण से अधिक सम्मेलन" समझ में नहीं आता किताब मेरे पास है।इंटरफेस या ऐसा कुछ इस्तेमाल करने के साथ इसका कुछ करना है? मुझे यह लिंक मिला लेकिन मुझे लगता है कि यह मेरे लिए काम नहीं करेगा क्योंकि मैं नुनिट का उपयोग कर रहा हूं और वह MbUnit का उपयोग कर रहा है? http://aspalliance.com/1590 – chobo2
@ chobo2 मैं इसका उपयोग कैसे करें इसके बारे में कुछ डालूंगा। मॉकिंग फ्रेमवर्क निश्चित रूप से इंटरफेस का उपयोग करने और अच्छे कारण के लिए एक पतला है। इंटरफेस का उपयोग करना अच्छा decoupling प्रदान करता है। हालांकि, आपको सभी मॉकिंग फ्रेमवर्क में इंटरफेस का उपयोग करने की आवश्यकता नहीं है। इसके अलावा, NUnit और MbUnit कई तरीकों से समान हैं, इसलिए एमबीयूनीट में जो कुछ किया जाता है, वह संभवतः न्यूटिट के साथ एक समानता है। कुछ शोध करने लायक है। – Joseph
ठीक है धन्यवाद। मैं अभी भी इंटरफेस को वास्तव में समझ नहीं पा रहा हूं और यूनिट परीक्षण की बात करते समय वास्तव में उनके साथ नहीं सोचा है। तो उम्मीद है कि इन ढांचे में से एक इसे थोड़ा आसान बना देगा। आप किसकी सिफारिश करते हैं? मुझे लगता है कि "Moq" linq sytanx का उपयोग करता है, इसलिए मुझे यकीन नहीं है कि अगर उस बल्ले का अधिकार है तो यह मेरे लिए अच्छा होगा क्योंकि मुझे linq के बारे में बहुत कुछ पता नहीं है। यह ढांचे नुनिट के साथ कैसे काम करते हैं? जैसा कि मैं अभी भी अपना परीक्षण चलाने के लिए ननिट का उपयोग करता हूं या क्या? – chobo2