0 امتیاز
قبل در برنامه نویسی توسط (1.1هزار امتیاز)

وقتی می خواهم یک متد استاتیک یک کلاس را در Mockito ماک کنم به خطای MissingMethodInvocationException برخورد می کنم، در حالی که تمام قسمت های کد درست است. وقتی همین کد را تغییر می دهم برای یک متد غیر استاتیک همان کلاس بدرستی کار می کند:

ArticleManager articleManagerMock = mock(ArticleManager.class);
when(articleManagerMock.isValidArticle()).thenReturn(true);

1 پاسخ

0 امتیاز
قبل توسط (1.1هزار امتیاز)

Mockito قابلیت mock کردن متدهای استاتیک را ندارد، به همین دلیل برای حل این مشکل دو را حل به نظر من می رسد:

  1. استفاده از کتابخانه PowerMock در کنار Mockito برای رسیدگی به اینگونه موارد.
  2. طراحی API کلاس های خود را تغییر دهید و کلاس خود را تست پذیر کنید، بدین معنی که فراخوانی متدهای استاتیک را درون یک متد wrapper غیر استاتیک قرار دهید و متد غیر استاتیک را با استفاده از Mockito ماک کنید.

سوالات مشابه

+1 امتیاز
1 پاسخ 396 بازدید
+1 امتیاز
1 پاسخ 336 بازدید
+2 امتیاز
1 پاسخ 429 بازدید
سوال شده 8 سال قبل در برنامه نویسی توسط mofarn (1.4هزار امتیاز)
0 امتیاز
1 پاسخ 306 بازدید
+1 امتیاز
1 پاسخ 1.2هزار بازدید
0 امتیاز
1 پاسخ 647 بازدید
+1 امتیاز
1 پاسخ 268 بازدید
+1 امتیاز
1 پاسخ 381 بازدید
سوال شده 6 سال قبل در برنامه نویسی توسط Saeed Zarinfam (1.1هزار امتیاز)
+1 امتیاز
1 پاسخ 286 بازدید
0 امتیاز
0 پاسخ 254 بازدید
سوال شده 11 سال قبل در برنامه نویسی توسط سلطانی (1.1هزار امتیاز)
...