سؤال

لقد كنت أحاول معرفة كيفية تشغيل الاختبارات ذات المعلمات في Junit4 مع PowerMock.المشكلة هي أنه لاستخدام PowerMock تحتاج إلى تزيين فصل الاختبار الخاص بك به

@RunWith(PowerMockRunner.class)

ولاستخدام الاختبارات ذات المعلمات التي يجب عليك التزيين بها

@RunWith(Parameterized.class)

مما أستطيع رؤيته يبدو أنهم مستبعدون بشكل متبادل !؟هل هذا صحيح؟هل هناك أي طريقة للتغلب على هذه؟لقد حاولت إنشاء فئة ذات معلمات ضمن فئة تعمل مع PowerMock؛شيء من هذا القبيل:

@RunWith(PowerMockRunner.class)
class MyTestClass {
     @RunWith(Parameterized.class)
     class ParamTestClass {
          // Yadayada
     }
}

لكن للأسف هذا لا يفيد كثيرًا..ال ParamTestClass لا يزال لا يعمل بدعم PowerMock (ربما ليس من المستغرب) ...لقد نفدت أفكاري نوعًا ما، لذا فإن أي مساعدة موضع تقدير كبير!

تحديث:لمستخدمي Google المستقبليين، راجع أيضًا: هل تستخدم PowerMock بدون RunWith؟

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

المحلول

كان لي نفس القضية.لسوء الحظ، لن يسمح لي باستخدام قاعدة PowerMock بسبب JVM الذي أملكه.بدلاً من القاعدة استخدمت RunnerDelegate.

@RunWith(PowerMockRunner.class)
@PowerMockRunnerDelegate(Parameterized.class)

نصائح أخرى

نعم يعمل هذا باستخدام PowerMock قاعدة متاح إذا كنت تستخدم JUnit 4.7+.

لا يمكنك استخدام اثنين من المتسابقين في نفس الوقت، لذلك سيتعين عليك بالتأكيد كتابة عداء الاختبار الخاص بك لتحقيق ذلك.

لا أعرف أي شيء عن Powermock، ولكن بعد 10 ثوانٍ من البحث، يبدو أن أحد الحلول هو كتابة مشغل اختبار يستخدم محمل فئة powermock ويقوم بإجراء اختبارات ذات معلمات.إذا كان بإمكانك معرفة كيفية تفويض مشغل الاختبار ذي المعلمات من داخل مشغل الاختبار المخصص لديك، فقد يكون هذا هو أفضل رهان لك.

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