পাওয়ারমক ব্যবহার করে একাধিক শ্রেণীর কাছ থেকে স্থির পদ্ধতিগুলি মক করুন


104

আমি জানি কিভাবে পাওয়ারমক ব্যবহার করে কোনও শ্রেণি থেকে স্থিতিশীল পদ্ধতিগুলি উপহাস করা যায়।
তবে আমি JUnit এবং পাওয়ারমক ব্যবহার করে পরীক্ষার ক্লাসে একাধিক ক্লাস থেকে স্থিতিশীল পদ্ধতিগুলি উপহাস করতে চাই।

আমাকে কি কেউ বলতে পারবেন যে এটি করা সম্ভব এবং কীভাবে এটি করা যায়?


4
আপনি কেবল একক ক্লাস থেকে পদ্ধতিগুলিকে বিদ্রূপ করার মতোই এটি করেন। কোথায় আটকে গেছিস?
আর্টব্রিস্টল

পাওয়ারমক ব্যবহার করার সময়, আপনাকে এই টীকাটি পরীক্ষার ক্লাসে @ParepareForTest (ClassThatContainsStaticMethod.class) এ যুক্ত করতে হবে। তবে আমরা একাধিক টীকা নির্দিষ্ট করতে পারি না। তাহলে কীভাবে করব?
নবাবি

উত্তর:


260

শুধু @PrepareForTest({Class1.class,Class2.class})একাধিক ক্লাসের জন্য না ।


11
কোঁকড়া ধনুর্বন্ধনী! আমি কি অনুপস্থিত ছিল।
সুডোকোডার

4
@RunWith(PowerMockRunner.class)ক্লাস স্তরের সাথে পাওয়ারমক রুনারটিতে স্যুইচ করতে ভুলবেন না
নিকিতা বারিশোক

4
@ নিকিতাবারিশোক সর্বদা প্রয়োজন হয় না। উপরের কাজটি করার পরিবর্তে আপনি একটি নিয়ম সংজ্ঞায়িত করতে পারেন -@Rule public PowerMockRule rule = new PowerMockRule();
অনিকেত ঠাকুর

5
কোটলিনে@PrepareForTest(Class1::class, Class2::class))
রায়হান

@PrepareOnlyThisForTestপরিবর্তে ব্যবহার করা আরও ভাল @PrepareForTest। পরেরটি সুপারক্লাসগুলিও পরিবর্তন করে, যা সাধারণত প্রয়োজন হয় না।
www.Decompiler.com

12
@Test
 @PrepareForTest({Class1.class, Class2.class})
 public final void handleScript() throws Exception {
    PowerMockito.mockStatic(Class1.class);
    PowerMockito.mockStatic(Class2.class);

ইত্যাদি ...


হিসাবে পদ্ধতি পদ্ধতিতে PowerMock 1.6.5ব্যবহার করতে সমস্যা আছে @PrepareForTest(কেবল আমার জন্য ক্লাস স্তরে কাজ করে)
নিকিতা বারিশোক ২

2

পাওয়ারমক / জুনিট সহ জাভাতে@PrepareForTest({}) আপনি অ্যারে ( {}) হিসাবে যতটা স্থিতিশীল ক্লাস ব্যবহার করতে পারেন ।

@RunWith(PowerMockRunner.class)
@PrepareForTest({XmlConverterA.class, XmlConverterB.class})
class TransfersServiceExceptionSpec {

}

আমি স্কেল / জুনেট সহ পাওয়ার পাওয়ারকে ব্যবহার করেছি, কারণ স্কেললেস্টের পাওয়ারমকের সাথে একীকরণ নেই।

@RunWith(classOf[PowerMockRunner])
@PrepareForTest(Array(classOf[XmlConverterA], classOf[XmlConverterB]))
class TransfersServiceExceptionSpec {

  @Test
  def test() {
  }
}

1

আপনি যদি কোটলিন ব্যবহার করছেন তবে বাক্য গঠনটি এটি

@PrepareForTest(ClassA::class, ClassB::class)

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.