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 پاسخ 609 بازدید
+1 امتیاز
1 پاسخ 532 بازدید
+2 امتیاز
1 پاسخ 633 بازدید
سوال شده 10 سال قبل در برنامه نویسی توسط mofarn (1.4هزار امتیاز)
0 امتیاز
1 پاسخ 504 بازدید
+1 امتیاز
1 پاسخ 1.5هزار بازدید
0 امتیاز
1 پاسخ 897 بازدید
+1 امتیاز
1 پاسخ 474 بازدید
+1 امتیاز
1 پاسخ 574 بازدید
سوال شده 8 سال قبل در برنامه نویسی توسط Saeed Zarinfam (1.1هزار امتیاز)
+1 امتیاز
1 پاسخ 408 بازدید
0 امتیاز
0 پاسخ 388 بازدید
سوال شده 12 سال قبل در برنامه نویسی توسط سلطانی (1.1هزار امتیاز)
...