سؤال

يعد نموذج الاختبار الذي تم إنشاؤه بواسطة ASMX مفيدًا جدًا لعمليات الاختبار.ومع ذلك، لا توجد طريقة واضحة لتضمين رؤوس SOAP.

كيف يمكنك اختبار رؤوسك دون برمجة العميل لاستخدام الخدمة؟

هل كانت مفيدة؟

المحلول

إذا كنت تهتم إمكانية التشغيل المتداخل، لا تستخدم صافي تطبيقات لاختبار صافي خدمات الويب. استخدام الأداة المناسبة مثل SOAPUI لاختبار خدمة الويب الخاص بك. www.soapui.org

ويتم كتابة أداة في جاوة، ولكن هو حر ومفيد الرتق لاختبار أي نوع من خدمة الإنترنت.

نصائح أخرى

إذا أنا أفهم ما يحاولون القيام به، يمكنك أن تفعل طلب HTTP باستخدام الصابون التي يتم توفيرها من قبل asmx الخاص بك. إذا قمت بفتح asmx الخاصة بك في broswer على، يمكنك الحصول على قائمة من طرق الدفع المتاحة في خدمة الويب الخاص بك. انقر على الطريقة التي تريد اختبار وستحصل على طلب SOAP يمكنك استخدامها، مجرد ملء القيم التي تريد اختبار. وفيما يلي التعليمات البرمجية التي يمكن استخدامها لاختبار SOAP.

// Set SOAP Message
string msg = "<?xml version='1.0' encoding='UTF-8'?><soap:Envelope>";
...
...

// Make http request
HttpWebRequest req = (HttpWebRequest)WebRequest.Create("http://linktoyour/service.asmx");

req.Headers.Add("SOAPAction", "http://linktoyour/NameOfFuntion");

req.ContentType = "text/xml;charset=\"utf-8\"";
req.Accept = "text/xml";
req.Method = "POST";
byte[] bytes = System.Text.Encoding.UTF8.GetBytes(msg);

req.ContentLength = bytes.Length;

System.IO.Stream st = req.GetRequestStream();
st.Write(bytes,0,bytes.Length);
st.Close();

// Read response
HttpWebResponse res = (HttpWebResponse)req.GetResponse();
System.IO.Stream st1 = res.GetResponseStream();

System.IO.StreamReader sr = new System.IO.StreamReader(st1, System.Text.Encoding.UTF8);

string txt = sr.ReadToEnd();

// Display response
Response.Write(txt);

ويطلب منك

<اقتباس فقرة>   

وكيف يمكنك اختبار الرؤوس الخاصة بك دون برمجة العميل لاستخدام الخدمة؟

والجواب هو أنه يجب برمجة العميل لاستخدام الخدمة.

والمطورين الذين كتابة التعليمات البرمجية للاستهلاك الخدمة الخاص بك هي على وشك أن أجبر على كتابة العميل الذي يستخدم بك سيئ التصميم، يصعب استخدام الخدمة مع عناوينها غريبة. أنه من الأفضل لك معرفة {، الاستخدام الصعب سيئ التصميم، غريب} قبل أن يفعلوا.

وبهذه الطريقة، يمكنك إعادة تصميم الخدمة لتكون {مصممة تصميما جيدا، الروائح الاستخدام، العادي}.

وراجع للشغل، وكتابة الاختبارات وحدة لخدمة الويب الخاص بك هو وسيلة جيدة للقيام بذلك. وبهذه الطريقة، وكنت قد حصلت صغير وبسيط والعملاء.

بدلًا من الوصول مباشرة إلى الرؤوس، قم بتوفير تجريد يصل إليه الكود الخاص بك بدلاً من ذلك.على سبيل المثال، إذا كان لديك رأس يسمى "العميل"، فيمكنك توفير فئة سياق يمكنك الوصول إليها كما يلي:

سلسلة العملاء = MyContext.Current.Customer؛

الآن، كل ما عليك فعله هو التبديل في تطبيق وهمي في فصول الاختبار الخاصة بك والذي لا يتطلب كل أعمال السباكة.

ومع ذلك، لاحظ أن اختبار ASMX خارج خادم الويب ليس مثاليًا تمامًا لأنه قد يفوته أشياء مثل التسلسل.إذا كان بإمكانك النشر على خادم اختبار واختبار النسخة المنشورة، فسيكون ذلك أفضل لك.إذا كنت مهتمًا حقًا بالاختبار، فإن WCF يعد خيارًا أفضل حيث يمكنك استضافة WCF بنفسك بسهولة في الاختبارات.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top