Talaan ng mga Nilalaman:

Maaari mo bang subukan ng unit ang mga static na pamamaraan?
Maaari mo bang subukan ng unit ang mga static na pamamaraan?

Video: Maaari mo bang subukan ng unit ang mga static na pamamaraan?

Video: Maaari mo bang subukan ng unit ang mga static na pamamaraan?
Video: Memory: HIRAP MAG MEMORYA, May Paraan Ba - How to Memorize Fast and Effectively 2024, Nobyembre
Anonim

Upang unit test ka kailangang kumuha ng isang maliit na piraso ng iyong code, i-rewire ang mga dependencies nito at pagsusulit ito sa paghihiwalay. Ito ay mahirap sa mga static na pamamaraan , hindi lamang sa kaso na na-access nila ang pandaigdigang estado ngunit kahit na kung iba na lang tawag nila mga static na pamamaraan.

Isinasaalang-alang ito, paano mo susubukan ang mga static na pamamaraan?

Mayroong apat na madaling hakbang sa pag-set up ng pagsubok na kumukutya sa isang static na tawag:

  1. Gamitin ang PowerMock JUnit runner: @RunWith(PowerMockRunner.
  2. Ipahayag ang klase ng pagsubok na kinukutya namin:
  3. Sabihin sa PowerMock ang pangalan ng klase na naglalaman ng mga static na pamamaraan:
  4. I-setup ang mga inaasahan, na nagsasabi sa PowerMock na umasa ng isang tawag sa isang static na paraan:

Katulad nito, maaari ba nating kutyain ang mga static na pamamaraan ng C#? 4 Mga sagot. Moq (at iba pang DynamicProxy-based nanunuya frameworks) ay hindi magawa pangungutya anumang bagay na hindi virtual o abstract paraan . Bilang kahalili, kaya mo refactor ang iyong disenyo sa abstract na mga tawag sa mga static na pamamaraan , at ibigay ang abstraction na ito sa iyong klase sa pamamagitan ng dependency injection.

Kaugnay nito, paano mo sinusuri ang mga pribadong pamamaraan?

Unit test tanging ang pampublikong magagamit na API. Kapag nagsusulat mga pagsubok sa yunit , gayahin ang ugali ng mga kliyente ng SUT. huwag subukan ang mga pribadong pamamaraan . alinman pagsubok ng yunit ang mga ito nang hindi direkta, gamit ang pampublikong API, o i-extract ang mga ito sa magkakahiwalay na klase at pagsusulit ang mga klase sa halip.

Ano ang isang static na pamamaraan?

Sa Java, a static na pamamaraan ay isang paraan na kabilang sa isang klase sa halip na isang halimbawa ng isang klase. Ang paraan ay naa-access sa bawat pagkakataon ng isang klase, ngunit paraan na tinukoy sa isang pagkakataon ay maa-access lamang ng miyembrong iyon ng isang klase.

Inirerekumendang: