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 پاسخ 596 بازدید
+1 امتیاز
1 پاسخ 517 بازدید
+2 امتیاز
1 پاسخ 613 بازدید
سوال شده 10 سال قبل در برنامه نویسی توسط mofarn (1.4هزار امتیاز)
0 امتیاز
1 پاسخ 490 بازدید
+1 امتیاز
1 پاسخ 1.4هزار بازدید
0 امتیاز
1 پاسخ 881 بازدید
+1 امتیاز
1 پاسخ 463 بازدید
+1 امتیاز
1 پاسخ 561 بازدید
سوال شده 8 سال قبل در برنامه نویسی توسط Saeed Zarinfam (1.1هزار امتیاز)
+1 امتیاز
1 پاسخ 393 بازدید
0 امتیاز
0 پاسخ 381 بازدید
سوال شده 12 سال قبل در برنامه نویسی توسط سلطانی (1.1هزار امتیاز)
...