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 پاسخ 531 بازدید
+1 امتیاز
1 پاسخ 451 بازدید
+2 امتیاز
1 پاسخ 545 بازدید
سوال شده 9 سال قبل در برنامه نویسی توسط mofarn (1.4هزار امتیاز)
0 امتیاز
1 پاسخ 425 بازدید
+1 امتیاز
1 پاسخ 1.4هزار بازدید
0 امتیاز
1 پاسخ 766 بازدید
+1 امتیاز
1 پاسخ 386 بازدید
+1 امتیاز
1 پاسخ 496 بازدید
سوال شده 7 سال قبل در برنامه نویسی توسط Saeed Zarinfam (1.1هزار امتیاز)
+1 امتیاز
1 پاسخ 335 بازدید
0 امتیاز
0 پاسخ 339 بازدید
سوال شده 11 سال قبل در برنامه نویسی توسط سلطانی (1.1هزار امتیاز)
...