Rumah >Java >javaTutorial >Bagaimana untuk mengejek Kaedah Statik Tunggal dan Mengembalikan Objek Tersuai Menggunakan PowerMock?

Bagaimana untuk mengejek Kaedah Statik Tunggal dan Mengembalikan Objek Tersuai Menggunakan PowerMock?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-09 20:33:18443semak imbas

How to Mock a Single Static Method and Return a Custom Object Using PowerMock?

PowerMock: Mengejek Kaedah Statik Tunggal untuk Mengembalikan Objek

Apabila mengejek kaedah statik di Jawa, anda mungkin menghadapi keperluan untuk memilih kaedah tertentu dan mengembalikan objek tersuai. PowerMock menyediakan kefungsian yang diperlukan untuk mencapai ini.

Mendayakan Olok-olok Statik

Untuk mengejek kaedah statik, anda perlu mendayakan olok-olok statik untuk kelas sasaran menggunakan PowerMockito.mockStatic(). Walau bagaimanapun, strategi jawapan lalai yang diberikan kepada kaedah ini boleh membawa kepada ralat tidak padan taip jika kelas mengandungi berbilang kaedah statik dengan jenis pulangan yang berbeza.

Mengejek dan Menimbul

Sebaliknya, anda harus menggunakan kaedah tersebut. -argument overload mockStatic() untuk mendayakan ejekan statik, kemudian gunakan PowerMockito.when() dan thenReturn() untuk menentukan tingkah laku yang diingini untuk individu kaedah. Ini membolehkan anda menentukan nilai pulangan tersuai untuk setiap kaedah stubbed.

Contoh Penggunaan

Pertimbangkan kelas dengan dua kaedah statik, satu mengembalikan String dan satu lagi int:

class ClassWithStatics {
  public static String getString() {
    return "String";
  }

  public static int getInt() {
    return 1;
  }
}

Untuk stub kaedah getString() untuk mengembalikan "Hello!", anda akan melakukan berikut:

PowerMockito.mockStatic(ClassWithStatics.class);
when(ClassWithStatics.getString()).thenReturn("Hello!");
System.out.println("String: " + ClassWithStatics.getString());

Perhatikan bahawa kaedah getInt() tidak distub secara eksplisit. Ia akan menggunakan gelagat lalai untuk mengembalikan 0.

Kesimpulan

Dengan menggunakan gabungan teknik ejekan dan stubbing statik yang betul, anda boleh secara selektif mengejek kaedah statik tunggal dan mengembalikan objek dalam PowerMock. Ini membolehkan anda menguji dan mengasingkan gelagat kaedah statik tertentu dalam kod Java anda.

Atas ialah kandungan terperinci Bagaimana untuk mengejek Kaedah Statik Tunggal dan Mengembalikan Objek Tersuai Menggunakan PowerMock?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn