Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Milyen korlátozások vannak a Mockito argumentum -illesztők használatának


Milyen korlátozások vannak a Mockito argumentum -illesztők használatának


A Mockito argumentum -csatlakozók hatékony eszközök, amelyeket az egységtesztben használnak az érvek rugalmas meghatározására a gúnyok beállításakor. Ugyanakkor több korlátozással járnak:

1. Használati kontextus: Az argumentum -illesztők csak a megsemmisítés vagy a módszerek ellenőrzésével összefüggésben használhatók. Nem használhatók, ha a vizsgált objektum módszereit hívják fel. Például nem használhatja a „bármistring ()” -t, amikor egy módszert hív egy valódi objektumon; Ehelyett konkrét értéket kell használnia [1] [5].

2. Konzisztencia az érvek között: Amikor egy érveléshez argumentum -illesztőgépet használ, az összes többi érvnek szintén használni kell a meccseket. Ugyanazon módszerhívásban nem keverheti össze a csatlakozókat a különböző argumentumok konkrét értékeivel. Ez az „InvaliduseOfMatchersexception” [7] [8] általános forrása.

3. gúnyolódási korlátozások: A Mockito nem gúnyolódik bizonyos módszerek, mint például a „egyenlő ()`, `hashcode ()` vagy a végső módszerek. Míg az argumentum -illesztők használhatók olyan módszerekkel, amelyek gúnyolódhatnak, nem terjesztik ki a korlátozott módszerek gúnyolódásának képességét [3].

4. Argumentum-matcher típusai: A Mockito különféle beépített argumentum-csatlakozókat biztosít (például „Anyint ()`, `bármistring ()`, `iSnull ()`), de az érveléshez a helyes típusnak kell választania. Például, ha a „bármi ()” primitív típusú használata nem működik a várt módon; Ehelyett használjon egy konkrétabb meccset, mint például az „Anyboolean ()” a logikai paraméterekhez [7].

5. Egyéni érv -illesztők: Míg a Mockito lehetővé teszi az egyéni mérkőzések létrehozását az „argthat ()” módszerrel, az „ArgumentMatcher” felület megvalósításához gondos mérlegelést igényel annak biztosítása érdekében, hogy a meccses viselkedjen a várt módon eltérő forgatókönyvekben [2] [4].

6. Integráció más könyvtárakba: Ha a Mockito -t más könyvtárakkal, például a Hamcrest -rel használja, akkor ügyeljen arra, hogy az integráció megfelelő kezelése legyen. Például, a Sonarqube a „argthat ()” bizonyos felhasználásait a Hamcrest Matchers -rel helytelennek tekintheti, még akkor is, ha érvényesek [4].

Összefoglalva: míg a Mockito érv -illesztők sokoldalúak, felhasználásuk konkrét kontextusokra korlátozódik, és következetességet igényel a módszer érvek között. Ezenkívül nem sikerül legyőzni a Mockito alapvető korlátait bizonyos módszerekkel vagy osztályokkal kapcsolatban.

Idézetek:
[1] https://groups.google.com/g/mockito/c/ul9ymczqnyky
[2] https://kenkousen.substack.com/p/tales-from-the-jar-side-a-mockito
[3] https://ioflood.com/blog/mockito/
[4] https://community.sonarsource.com/t/problem-with-jó-rule-s6073-mockito-argument-matchers-in-case-of-usage-mockitohamcrest-adapter/38429
[5] https://groups.google.com/g/mockito/c/zi6pcqudtco
[6] https://www.lambdatest.com/automation-testing-advisor/selenium/methods/org.mockito.argumentMatchers.isnull
[7] https://stackoverflow.com/questions/16458136/mockito-invalid-use-of-argument-matchers
[8] https://www.baeldung.com/mockito-argument-matchers