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 پاسخ 535 بازدید
+1 امتیاز
1 پاسخ 456 بازدید
+2 امتیاز
1 پاسخ 550 بازدید
سوال شده 9 سال قبل در برنامه نویسی توسط mofarn (1.4هزار امتیاز)
0 امتیاز
1 پاسخ 434 بازدید
+1 امتیاز
1 پاسخ 1.4هزار بازدید
0 امتیاز
1 پاسخ 783 بازدید
+1 امتیاز
1 پاسخ 392 بازدید
+1 امتیاز
1 پاسخ 502 بازدید
سوال شده 7 سال قبل در برنامه نویسی توسط Saeed Zarinfam (1.1هزار امتیاز)
+1 امتیاز
1 پاسخ 341 بازدید
0 امتیاز
0 پاسخ 341 بازدید
سوال شده 11 سال قبل در برنامه نویسی توسط سلطانی (1.1هزار امتیاز)
...