مقدمة
عندما كنا نتعلم جافا ، كتب المعلمون أو الكتب العامة أن هناك ثمانية أنواع أساسية من جافا. هم: بايت ، int ، قصيرة ، طويلة ، تعويم ، مزدوجة ، شار ، منطقية. ومع ذلك ، عندما كنت أقرأ الكتاب المقدس Java ، "التفكير في Java" هذا الصباح ، وجدت أن المؤلف وضع باطلاً عليه عند شرح نوع البيانات. هناك تسعة أنواع من هذا. قرأت على Baidu ووجدت أن بعض الكتب تكتب أيضًا تسعة أنواع أساسية من Java.
هناك العديد من الطرق من نوع الفراغ في طبقة خدمة Java ، مثل Save* and Update*. يتم تحديث هذه الطرق للتو ولن يكون لها قيمة إرجاع. لا يمكن كتابة الاختبار الفردي بناءً على قيمة إرجاع الطريقة ، بحيث لا يمكنهم سوى استخدام طرق خاصة ؛
بيئة هذه الطريقة: mockito ، testng
الطرق التي تم اختبارها:
جافا
Override public void updaterulename (Long RuleId ، سلسلة newRulename ، ucid long) {assert.notnull (reaseId ، "معرف القاعدة لا ، لا ، لا ،) ؛ Assert.notnull (newRulename ، "اسم القاعدة لا يمكن أن يكون فارغا") ؛ Assert.notnull (UCID ، "UCID المشغل لا يمكن أن يكون فارغا") ؛ String CleanNewRulename = StringUtils.trim (newRulename) ؛ if (stringUtils.IsBlank (CleanNewRulename)) {رمي جديد alficalArgumentException ("لا يمكن أن يكون اسم القاعدة الجديد فارغًا") ؛ } // Query قاعدة قاعدة كائن القاعدة = QueryRuleById (ruleId) ؛ if (null == rule) {رمي new instalaldataexception ("لا توجد قاعدة موجودة") ؛ } reace.setRuleId (ruleId) ؛ rule.setRulename (CleanNewRulename) ؛ rule.setupdateucid (UCID) ؛ rule.setupDateTime (تاريخ جديد ()) ؛ Ruledao.updateselective (القاعدة) ؛ }طريقة الاختبار:
اختبار java بواسطة طريقة إرجاع باطلة
test public void testupdaterulename () {long reasoD = 1L ؛ سلسلة newRulename = "newRulename" ؛ ucid طويل = 123L ؛ قائمة <Crle> قواعد = ArrayList جديدة <rule> () ؛ قاعدة القاعدة = قاعدة جديدة () ؛ rease.setRulestatus ((byte) dbvaluesetting.rule_status_take_effect) ؛ القواعد. add (القاعدة) ؛ // استعلام خريطة كائن القاعدة <string ، object> params = new hashmap <string ، Object> () ؛ params.put ("reaseId" ، ruleId) ؛ mockito mockito.doanswer (إجابة جديدة <Object> () {إجابة الكائنات العامة (invocationOnMock invocation) {// brepoint 2: reruct rease = (rule) invocation.getArguments () [0] }). // نقطة الإيقاف 1: تنفيذ هنا first ruleservice.updaterulename (RuleId ، newRulename ، UCID) ؛ }كما هو موضح في التعليقات ، إذا تمت إضافة نقطتين توقف ، فسيتم تنفيذ خط الاتصال الأخير أولاً أثناء عملية التنفيذ. أثناء تنفيذ نقطة النهاية 1 ، سيتم تنفيذ كعب Endpoint 2. في هذا الوقت ، يمكن الحصول على معلمة إدخال تنفيذ الطريقة عند نقطة الإيقاف 2 ، ويمكن تنفيذ المعلمة الواردة للتأكيد على تحقيق الغرض ؛
الإجابة الجديدة هي واجهة ، والتي تحتوي على طريقة واحدة فقط ، يتم استخدامها لتعيين بوابة تنفيذ الوكيل لمكالمات الطريقة.
تنفيذ DoAnswer Java
الواجهة العامة إجابة <T> { /*** param الاحتجاج على الاحتجاج على السخرية. * * regurn القيمة المراد إرجاعها * * athrows يمكن رميها يمكن إلقاؤها */ t الإجابة (استدعاء invocationOnMock) رمي ؛} عندما يتم تنفيذ المدونة على " ruleDao.updateSelective(rule); " ، سيتم تشغيل اعتراض يدعو إلى الكائن الوهمي. في الاعتراض ، سيتم إنشاء وكيل ديناميكي. الاحتجاج بالوكيل الديناميكي هو الطريقة التي يتم تغطيتها في إجابة جديدة ؛
باستخدام طريقتين: التقاطع والوكالة ، يتم تحقيق الإعداد والحصول على المعلمات الواردة والصادرة لطريقة كائن وهمية. وبهذه الطريقة ، يمكن فحص مكالمات فئة التنفيذ داخل طريقة الفراغ ؛
لخص
ما سبق هو المحتوى الكامل لهذه المقالة. آمل أن يكون محتوى هذه المقالة من بعض المساعدة لدراستك أو عملك. إذا كان لديك أي أسئلة ، فيمكنك ترك رسالة للتواصل.