{"id":73179,"date":"2024-08-12T12:35:25","date_gmt":"2024-08-12T09:05:25","guid":{"rendered":"https:\/\/nabfollower.com\/blog\/uses-of-spy-annotation-in-junit-testing-23n6\/"},"modified":"2024-08-12T12:35:25","modified_gmt":"2024-08-12T09:05:25","slug":"uses-of-spy-annotation-in-junit-testing-23n6","status":"publish","type":"post","link":"https:\/\/nabfollower.com\/blog\/uses-of-spy-annotation-in-junit-testing-23n6\/","title":{"rendered":"\u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u062d\u0627\u0634\u06cc\u0647 \u0646\u0648\u06cc\u0633\u06cc @spy \u062f\u0631 \u062a\u0633\u062a junit"},"content":{"rendered":"<p>Summarize this content to 400 words in Persian Lang<br \/>\n            \u0631\u0627 @Spy \u062d\u0627\u0634\u06cc\u0647 \u0646\u0648\u06cc\u0633\u06cc \u062f\u0631 JUnit\u060c \u0628\u0647 \u0648\u06cc\u0698\u0647 \u0647\u0646\u06af\u0627\u0645\u06cc \u06a9\u0647 \u0628\u0627 Mockito \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u0634\u0648\u062f\u060c \u0628\u0631\u0627\u06cc \u0627\u06cc\u062c\u0627\u062f \u062c\u0627\u0633\u0648\u0633\u06cc \u0628\u0631 \u0631\u0648\u06cc \u06cc\u06a9 \u0634\u06cc \u0648\u0627\u0642\u0639\u06cc \u0627\u0639\u0645\u0627\u0644 \u0645\u06cc \u0634\u0648\u062f. \u062c\u0627\u0633\u0648\u0633 \u06cc\u06a9 \u062a\u0645\u0633\u062e\u0631 \u062c\u0632\u0626\u06cc \u0627\u0633\u062a\u060c \u0628\u0647 \u0627\u06cc\u0646 \u0645\u0639\u0646\u06cc \u06a9\u0647 \u0634\u0645\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0628\u0631\u062e\u06cc \u0627\u0632 \u0631\u0648\u0634 \u0647\u0627\u06cc \u0634\u06cc \u0631\u0627 \u0645\u0633\u062e\u0631\u0647 \u06a9\u0646\u06cc\u062f \u062f\u0631 \u062d\u0627\u0644\u06cc \u06a9\u0647 \u0631\u0641\u062a\u0627\u0631 \u0648\u0627\u0642\u0639\u06cc \u0631\u0648\u0634 \u0647\u0627\u06cc \u062f\u06cc\u06af\u0631 \u0631\u0627 \u062d\u0641\u0638 \u06a9\u0646\u06cc\u062f.<\/p>\n<p>\u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u0628\u0631\u062e\u06cc \u0627\u0632 \u06a9\u0627\u0631\u0628\u0631\u062f\u0647\u0627\u06cc \u0631\u0627\u06cc\u062c \u0622\u0646 \u0622\u0648\u0631\u062f\u0647 \u0634\u062f\u0647 \u0627\u0633\u062a @Spy \u062d\u0627\u0634\u06cc\u0647 \u0646\u0648\u06cc\u0633\u06cc:<\/p>\n<p>\u062a\u0645\u0633\u062e\u0631 \u062c\u0632\u0626\u06cc:<\/p>\n<p>\u0627\u06af\u0631 \u0634\u06cc\u0626\u06cc \u062f\u0627\u0631\u06cc\u062f \u06a9\u0647 \u0627\u06a9\u062b\u0631 \u0631\u0648\u0634\u0647\u0627 \u0628\u0627\u06cc\u062f \u0631\u0641\u062a\u0627\u0631 \u0648\u0627\u0642\u0639\u06cc \u062e\u0648\u062f \u0631\u0627 \u062d\u0641\u0638 \u06a9\u0646\u0646\u062f \u0627\u0645\u0627 \u06cc\u06a9 \u06cc\u0627 \u062f\u0648 \u0631\u0648\u0634 \u0628\u0627\u06cc\u062f \u0645\u0648\u0631\u062f \u062a\u0645\u0633\u062e\u0631 \u0642\u0631\u0627\u0631 \u06af\u06cc\u0631\u0646\u062f\u060c \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u0632 \u062c\u0627\u0633\u0648\u0633 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f.<br \/>\n\u0645\u062b\u0627\u0644:<\/p>\n<p> @Spy<br \/>\n private ListString&gt; spyList = new ArrayList();<\/p>\n<p> @Test<br \/>\n public void testSpy() {<br \/>\n     spyList.add(&#8220;Mockito&#8221;);<br \/>\n     Mockito.verify(spyList).add(&#8220;Mockito&#8221;);<br \/>\n     assertEquals(1, spyList.size());<\/p>\n<p>     Mockito.doReturn(100).when(spyList).size();<br \/>\n     assertEquals(100, spyList.size());<br \/>\n }<\/p>\n<p>\u0646\u0627\u062f\u06cc\u062f\u0647 \u06af\u0631\u0641\u062a\u0646 \u0631\u0641\u062a\u0627\u0631 \u0631\u0648\u0634 \u0648\u0627\u0642\u0639\u06cc:<\/p>\n<p>\u0634\u0645\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u0632 \u06cc\u06a9 \u062c\u0627\u0633\u0648\u0633 \u0628\u0631\u0627\u06cc \u0646\u0627\u062f\u06cc\u062f\u0647 \u06af\u0631\u0641\u062a\u0646 \u0631\u0641\u062a\u0627\u0631 \u0631\u0648\u0634 \u062e\u0627\u0635 \u06cc\u06a9 \u0634\u06cc \u0648\u0627\u0642\u0639\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f \u0648 \u062f\u0631 \u0639\u06cc\u0646 \u062d\u0627\u0644 \u0628\u0642\u06cc\u0647 \u0631\u0648\u0634 \u0647\u0627 \u0631\u0627 \u062f\u0633\u062a \u0646\u062e\u0648\u0631\u062f\u0647 \u0646\u06af\u0647 \u062f\u0627\u0631\u06cc\u062f.<br \/>\n\u0645\u062b\u0627\u0644:<\/p>\n<p> @Spy<br \/>\n private MyClass myClass = new MyClass();<\/p>\n<p> @Test<br \/>\n public void testSpyWithMethodOverride() {<br \/>\n     Mockito.doReturn(&#8220;Mocked Value&#8221;).when(myClass).someMethod();<br \/>\n     assertEquals(&#8220;Mocked Value&#8221;, myClass.someMethod());<br \/>\n }<\/p>\n<p>\u062a\u0623\u06cc\u06cc\u062f \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc \u0631\u0648\u0634:<\/p>\n<p>\u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0628\u0631\u0631\u0633\u06cc \u06a9\u0646\u06cc\u062f \u06a9\u0647 \u0622\u06cc\u0627 \u0631\u0648\u0634\u200c\u0647\u0627\u06cc \u062e\u0627\u0635\u06cc \u0627\u0632 \u062c\u0627\u0633\u0648\u0633 \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc \u0634\u062f\u0647 \u0627\u0633\u062a \u06cc\u0627 \u062e\u06cc\u0631\u060c \u06a9\u0647 \u062f\u0631 \u0647\u0646\u06af\u0627\u0645 \u0622\u0632\u0645\u0627\u06cc\u0634 \u062a\u0639\u0627\u0645\u0644\u0627\u062a \u0645\u0641\u06cc\u062f \u0627\u0633\u062a.<br \/>\n\u0645\u062b\u0627\u0644:<\/p>\n<p> @Spy<br \/>\n private MyClass myClass = new MyClass();<\/p>\n<p> @Test<br \/>\n public void testMethodCallVerification() {<br \/>\n     myClass.someMethod();<br \/>\n     Mockito.verify(myClass).someMethod();<br \/>\n }<\/p>\n<p>\u062a\u0631\u06a9\u06cc\u0628 \u0628\u0627 @InjectMocks:<\/p>\n<p>@Spy  \u0631\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646 \u0647\u0645\u0631\u0627\u0647 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0631\u062f @InjectMocks \u0628\u0631\u0627\u06cc \u062a\u0632\u0631\u06cc\u0642 \u0627\u0634\u06cc\u0627\u0621 \u062c\u0627\u0633\u0648\u0633\u06cc \u0634\u062f\u0647 \u0628\u0647 \u0634\u06cc \u0645\u0648\u0631\u062f \u0622\u0632\u0645\u0627\u06cc\u0634\u060c \u0627\u0645\u06a9\u0627\u0646 \u062a\u0645\u0633\u062e\u0631 \u062c\u0632\u0626\u06cc \u062f\u0631 \u06a9\u0644\u0627\u0633 \u0622\u0632\u0645\u0627\u06cc\u0634 \u0634\u062f\u0647 \u0631\u0627 \u0641\u0631\u0627\u0647\u0645 \u0645\u06cc \u06a9\u0646\u062f.<br \/>\n\u0645\u062b\u0627\u0644:<\/p>\n<p> @Spy<br \/>\n private MyDependency dependency;<\/p>\n<p> @InjectMocks<br \/>\n private MyService service;<\/p>\n<p> @Test<br \/>\n public void testService() {<br \/>\n     Mockito.doReturn(&#8220;Mocked Result&#8221;).when(dependency).doSomething();<br \/>\n     assertEquals(&#8220;Mocked Result&#8221;, service.performAction());<br \/>\n }<\/p>\n<p>\u062a\u0633\u062a \u06a9\u062f\u0647\u0627\u06cc \u0642\u062f\u06cc\u0645\u06cc:<\/p>\n<p>\u0647\u0646\u06af\u0627\u0645\u06cc \u06a9\u0647 \u0628\u0627 \u06a9\u062f\u0647\u0627\u06cc \u0642\u062f\u06cc\u0645\u06cc \u0633\u0631\u0648\u06a9\u0627\u0631 \u062f\u0627\u0631\u06cc\u062f \u06a9\u0647 \u0646\u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0628\u0647 \u0631\u0627\u062d\u062a\u06cc \u0622\u0646\u200c\u0647\u0627 \u0631\u0627 \u0628\u0627\u0632\u0633\u0627\u0632\u06cc \u06a9\u0646\u06cc\u062f\u060c \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u062c\u0627\u0633\u0648\u0633 \u0628\u0647 \u0634\u0645\u0627 \u0627\u06cc\u0646 \u0627\u0645\u06a9\u0627\u0646 \u0631\u0627 \u0645\u06cc\u200c\u062f\u0647\u062f \u062a\u0627 \u0631\u0648\u0634\u200c\u0647\u0627\u06cc \u062e\u0627\u0635\u06cc \u0631\u0627 \u0628\u062f\u0648\u0646 \u062a\u063a\u06cc\u06cc\u0631 \u06a9\u062f \u0627\u0635\u0644\u06cc \u062c\u062f\u0627\u0633\u0627\u0632\u06cc \u0648 \u0645\u0633\u062e\u0631\u0647 \u06a9\u0646\u06cc\u062f.<\/p>\n<p>\u0628\u0647 \u0637\u0648\u0631 \u062e\u0644\u0627\u0635\u0647\u060c @Spy \u062d\u0627\u0634\u06cc\u0647 \u0646\u0648\u06cc\u0633\u06cc \u0632\u0645\u0627\u0646\u06cc \u0645\u0641\u06cc\u062f \u0627\u0633\u062a \u06a9\u0647 \u0634\u0645\u0627 \u0646\u06cc\u0627\u0632 \u0628\u0647 \u06a9\u0646\u062a\u0631\u0644 \u06cc\u0627 \u062a\u0623\u06cc\u06cc\u062f \u0631\u0641\u062a\u0627\u0631\u0647\u0627\u06cc \u062e\u0627\u0635 \u06cc\u06a9 \u0634\u06cc \u0648\u0627\u0642\u0639\u06cc \u062f\u0627\u0631\u06cc\u062f \u062f\u0631 \u062d\u0627\u0644\u06cc \u06a9\u0647 \u0628\u0642\u06cc\u0647 \u0631\u0641\u062a\u0627\u0631 \u0634\u06cc\u0621 \u0631\u0627 \u0628\u062f\u0648\u0646 \u062a\u063a\u06cc\u06cc\u0631 \u0646\u06af\u0647 \u062f\u0627\u0631\u06cc\u062f.<\/p>\n<div data-article-id=\"1956173\" id=\"article-body\">\n<p>\u0631\u0627 <code>@Spy<\/code> \u062d\u0627\u0634\u06cc\u0647 \u0646\u0648\u06cc\u0633\u06cc \u062f\u0631 JUnit\u060c \u0628\u0647 \u0648\u06cc\u0698\u0647 \u0647\u0646\u06af\u0627\u0645\u06cc \u06a9\u0647 \u0628\u0627 Mockito \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u0634\u0648\u062f\u060c \u0628\u0631\u0627\u06cc \u0627\u06cc\u062c\u0627\u062f \u062c\u0627\u0633\u0648\u0633\u06cc \u0628\u0631 \u0631\u0648\u06cc \u06cc\u06a9 \u0634\u06cc \u0648\u0627\u0642\u0639\u06cc \u0627\u0639\u0645\u0627\u0644 \u0645\u06cc \u0634\u0648\u062f. \u062c\u0627\u0633\u0648\u0633 \u06cc\u06a9 \u062a\u0645\u0633\u062e\u0631 \u062c\u0632\u0626\u06cc \u0627\u0633\u062a\u060c \u0628\u0647 \u0627\u06cc\u0646 \u0645\u0639\u0646\u06cc \u06a9\u0647 \u0634\u0645\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0628\u0631\u062e\u06cc \u0627\u0632 \u0631\u0648\u0634 \u0647\u0627\u06cc \u0634\u06cc \u0631\u0627 \u0645\u0633\u062e\u0631\u0647 \u06a9\u0646\u06cc\u062f \u062f\u0631 \u062d\u0627\u0644\u06cc \u06a9\u0647 \u0631\u0641\u062a\u0627\u0631 \u0648\u0627\u0642\u0639\u06cc \u0631\u0648\u0634 \u0647\u0627\u06cc \u062f\u06cc\u06af\u0631 \u0631\u0627 \u062d\u0641\u0638 \u06a9\u0646\u06cc\u062f.<\/p>\n<p>\u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u0628\u0631\u062e\u06cc \u0627\u0632 \u06a9\u0627\u0631\u0628\u0631\u062f\u0647\u0627\u06cc \u0631\u0627\u06cc\u062c \u0622\u0646 \u0622\u0648\u0631\u062f\u0647 \u0634\u062f\u0647 \u0627\u0633\u062a <code>@Spy<\/code> \u062d\u0627\u0634\u06cc\u0647 \u0646\u0648\u06cc\u0633\u06cc:<\/p>\n<ol>\n<li>\n<p><strong>\u062a\u0645\u0633\u062e\u0631 \u062c\u0632\u0626\u06cc<\/strong>:<\/p>\n<ul>\n<li>\u0627\u06af\u0631 \u0634\u06cc\u0626\u06cc \u062f\u0627\u0631\u06cc\u062f \u06a9\u0647 \u0627\u06a9\u062b\u0631 \u0631\u0648\u0634\u0647\u0627 \u0628\u0627\u06cc\u062f \u0631\u0641\u062a\u0627\u0631 \u0648\u0627\u0642\u0639\u06cc \u062e\u0648\u062f \u0631\u0627 \u062d\u0641\u0638 \u06a9\u0646\u0646\u062f \u0627\u0645\u0627 \u06cc\u06a9 \u06cc\u0627 \u062f\u0648 \u0631\u0648\u0634 \u0628\u0627\u06cc\u062f \u0645\u0648\u0631\u062f \u062a\u0645\u0633\u062e\u0631 \u0642\u0631\u0627\u0631 \u06af\u06cc\u0631\u0646\u062f\u060c \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u0632 \u062c\u0627\u0633\u0648\u0633 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f.<\/li>\n<li>\u0645\u062b\u0627\u0644:\n<\/li>\n<\/ul>\n<pre class=\"highlight java\"><code> <span class=\"nd\">@Spy<\/span>\n <span class=\"kd\">private<\/span> <span class=\"nc\">List<\/span><span class=\"o\"><span class=\"nc\">String<\/span><span class=\"o\">&gt;<\/span> <span class=\"n\">spyList<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nc\">ArrayList<\/span><span class=\"o\">();<\/span>\n\n <span class=\"nd\">@Test<\/span>\n <span class=\"kd\">public<\/span> <span class=\"kt\">void<\/span> <span class=\"nf\">testSpy<\/span><span class=\"o\">()<\/span> <span class=\"o\">{<\/span>\n     <span class=\"n\">spyList<\/span><span class=\"o\">.<\/span><span class=\"na\">add<\/span><span class=\"o\">(<\/span><span class=\"s\">\"Mockito\"<\/span><span class=\"o\">);<\/span>\n     <span class=\"nc\">Mockito<\/span><span class=\"o\">.<\/span><span class=\"na\">verify<\/span><span class=\"o\">(<\/span><span class=\"n\">spyList<\/span><span class=\"o\">).<\/span><span class=\"na\">add<\/span><span class=\"o\">(<\/span><span class=\"s\">\"Mockito\"<\/span><span class=\"o\">);<\/span>\n     <span class=\"n\">assertEquals<\/span><span class=\"o\">(<\/span><span class=\"mi\">1<\/span><span class=\"o\">,<\/span> <span class=\"n\">spyList<\/span><span class=\"o\">.<\/span><span class=\"na\">size<\/span><span class=\"o\">());<\/span>\n\n     <span class=\"nc\">Mockito<\/span><span class=\"o\">.<\/span><span class=\"na\">doReturn<\/span><span class=\"o\">(<\/span><span class=\"mi\">100<\/span><span class=\"o\">).<\/span><span class=\"na\">when<\/span><span class=\"o\">(<\/span><span class=\"n\">spyList<\/span><span class=\"o\">).<\/span><span class=\"na\">size<\/span><span class=\"o\">();<\/span>\n     <span class=\"n\">assertEquals<\/span><span class=\"o\">(<\/span><span class=\"mi\">100<\/span><span class=\"o\">,<\/span> <span class=\"n\">spyList<\/span><span class=\"o\">.<\/span><span class=\"na\">size<\/span><span class=\"o\">());<\/span>\n <span class=\"o\">}<\/span>\n<\/span><\/code><\/pre>\n<\/li>\n<li>\n<p><strong>\u0646\u0627\u062f\u06cc\u062f\u0647 \u06af\u0631\u0641\u062a\u0646 \u0631\u0641\u062a\u0627\u0631 \u0631\u0648\u0634 \u0648\u0627\u0642\u0639\u06cc<\/strong>:<\/p>\n<ul>\n<li>\u0634\u0645\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u0632 \u06cc\u06a9 \u062c\u0627\u0633\u0648\u0633 \u0628\u0631\u0627\u06cc \u0646\u0627\u062f\u06cc\u062f\u0647 \u06af\u0631\u0641\u062a\u0646 \u0631\u0641\u062a\u0627\u0631 \u0631\u0648\u0634 \u062e\u0627\u0635 \u06cc\u06a9 \u0634\u06cc \u0648\u0627\u0642\u0639\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f \u0648 \u062f\u0631 \u0639\u06cc\u0646 \u062d\u0627\u0644 \u0628\u0642\u06cc\u0647 \u0631\u0648\u0634 \u0647\u0627 \u0631\u0627 \u062f\u0633\u062a \u0646\u062e\u0648\u0631\u062f\u0647 \u0646\u06af\u0647 \u062f\u0627\u0631\u06cc\u062f.<\/li>\n<li>\u0645\u062b\u0627\u0644:\n<\/li>\n<\/ul>\n<pre class=\"highlight java\"><code> <span class=\"nd\">@Spy<\/span>\n <span class=\"kd\">private<\/span> <span class=\"nc\">MyClass<\/span> <span class=\"n\">myClass<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nc\">MyClass<\/span><span class=\"o\">();<\/span>\n\n <span class=\"nd\">@Test<\/span>\n <span class=\"kd\">public<\/span> <span class=\"kt\">void<\/span> <span class=\"nf\">testSpyWithMethodOverride<\/span><span class=\"o\">()<\/span> <span class=\"o\">{<\/span>\n     <span class=\"nc\">Mockito<\/span><span class=\"o\">.<\/span><span class=\"na\">doReturn<\/span><span class=\"o\">(<\/span><span class=\"s\">\"Mocked Value\"<\/span><span class=\"o\">).<\/span><span class=\"na\">when<\/span><span class=\"o\">(<\/span><span class=\"n\">myClass<\/span><span class=\"o\">).<\/span><span class=\"na\">someMethod<\/span><span class=\"o\">();<\/span>\n     <span class=\"n\">assertEquals<\/span><span class=\"o\">(<\/span><span class=\"s\">\"Mocked Value\"<\/span><span class=\"o\">,<\/span> <span class=\"n\">myClass<\/span><span class=\"o\">.<\/span><span class=\"na\">someMethod<\/span><span class=\"o\">());<\/span>\n <span class=\"o\">}<\/span>\n<\/code><\/pre>\n<\/li>\n<li>\n<p><strong>\u062a\u0623\u06cc\u06cc\u062f \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc \u0631\u0648\u0634<\/strong>:<\/p>\n<ul>\n<li>\u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0628\u0631\u0631\u0633\u06cc \u06a9\u0646\u06cc\u062f \u06a9\u0647 \u0622\u06cc\u0627 \u0631\u0648\u0634\u200c\u0647\u0627\u06cc \u062e\u0627\u0635\u06cc \u0627\u0632 \u062c\u0627\u0633\u0648\u0633 \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc \u0634\u062f\u0647 \u0627\u0633\u062a \u06cc\u0627 \u062e\u06cc\u0631\u060c \u06a9\u0647 \u062f\u0631 \u0647\u0646\u06af\u0627\u0645 \u0622\u0632\u0645\u0627\u06cc\u0634 \u062a\u0639\u0627\u0645\u0644\u0627\u062a \u0645\u0641\u06cc\u062f \u0627\u0633\u062a.<\/li>\n<li>\u0645\u062b\u0627\u0644:\n<\/li>\n<\/ul>\n<pre class=\"highlight java\"><code> <span class=\"nd\">@Spy<\/span>\n <span class=\"kd\">private<\/span> <span class=\"nc\">MyClass<\/span> <span class=\"n\">myClass<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nc\">MyClass<\/span><span class=\"o\">();<\/span>\n\n <span class=\"nd\">@Test<\/span>\n <span class=\"kd\">public<\/span> <span class=\"kt\">void<\/span> <span class=\"nf\">testMethodCallVerification<\/span><span class=\"o\">()<\/span> <span class=\"o\">{<\/span>\n     <span class=\"n\">myClass<\/span><span class=\"o\">.<\/span><span class=\"na\">someMethod<\/span><span class=\"o\">();<\/span>\n     <span class=\"nc\">Mockito<\/span><span class=\"o\">.<\/span><span class=\"na\">verify<\/span><span class=\"o\">(<\/span><span class=\"n\">myClass<\/span><span class=\"o\">).<\/span><span class=\"na\">someMethod<\/span><span class=\"o\">();<\/span>\n <span class=\"o\">}<\/span>\n<\/code><\/pre>\n<\/li>\n<li>\n<p><strong>\u062a\u0631\u06a9\u06cc\u0628 \u0628\u0627 <code>@InjectMocks<\/code><\/strong>:<\/p>\n<ul>\n<li>\n<code>@Spy<\/code>  \u0631\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646 \u0647\u0645\u0631\u0627\u0647 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0631\u062f <code>@InjectMocks<\/code> \u0628\u0631\u0627\u06cc \u062a\u0632\u0631\u06cc\u0642 \u0627\u0634\u06cc\u0627\u0621 \u062c\u0627\u0633\u0648\u0633\u06cc \u0634\u062f\u0647 \u0628\u0647 \u0634\u06cc \u0645\u0648\u0631\u062f \u0622\u0632\u0645\u0627\u06cc\u0634\u060c \u0627\u0645\u06a9\u0627\u0646 \u062a\u0645\u0633\u062e\u0631 \u062c\u0632\u0626\u06cc \u062f\u0631 \u06a9\u0644\u0627\u0633 \u0622\u0632\u0645\u0627\u06cc\u0634 \u0634\u062f\u0647 \u0631\u0627 \u0641\u0631\u0627\u0647\u0645 \u0645\u06cc \u06a9\u0646\u062f.<\/li>\n<li>\u0645\u062b\u0627\u0644:\n<\/li>\n<\/ul>\n<pre class=\"highlight java\"><code> <span class=\"nd\">@Spy<\/span>\n <span class=\"kd\">private<\/span> <span class=\"nc\">MyDependency<\/span> <span class=\"n\">dependency<\/span><span class=\"o\">;<\/span>\n\n <span class=\"nd\">@InjectMocks<\/span>\n <span class=\"kd\">private<\/span> <span class=\"nc\">MyService<\/span> <span class=\"n\">service<\/span><span class=\"o\">;<\/span>\n\n <span class=\"nd\">@Test<\/span>\n <span class=\"kd\">public<\/span> <span class=\"kt\">void<\/span> <span class=\"nf\">testService<\/span><span class=\"o\">()<\/span> <span class=\"o\">{<\/span>\n     <span class=\"nc\">Mockito<\/span><span class=\"o\">.<\/span><span class=\"na\">doReturn<\/span><span class=\"o\">(<\/span><span class=\"s\">\"Mocked Result\"<\/span><span class=\"o\">).<\/span><span class=\"na\">when<\/span><span class=\"o\">(<\/span><span class=\"n\">dependency<\/span><span class=\"o\">).<\/span><span class=\"na\">doSomething<\/span><span class=\"o\">();<\/span>\n     <span class=\"n\">assertEquals<\/span><span class=\"o\">(<\/span><span class=\"s\">\"Mocked Result\"<\/span><span class=\"o\">,<\/span> <span class=\"n\">service<\/span><span class=\"o\">.<\/span><span class=\"na\">performAction<\/span><span class=\"o\">());<\/span>\n <span class=\"o\">}<\/span>\n<\/code><\/pre>\n<\/li>\n<li>\n<p><strong>\u062a\u0633\u062a \u06a9\u062f\u0647\u0627\u06cc \u0642\u062f\u06cc\u0645\u06cc<\/strong>:<\/p>\n<ul>\n<li>\u0647\u0646\u06af\u0627\u0645\u06cc \u06a9\u0647 \u0628\u0627 \u06a9\u062f\u0647\u0627\u06cc \u0642\u062f\u06cc\u0645\u06cc \u0633\u0631\u0648\u06a9\u0627\u0631 \u062f\u0627\u0631\u06cc\u062f \u06a9\u0647 \u0646\u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0628\u0647 \u0631\u0627\u062d\u062a\u06cc \u0622\u0646\u200c\u0647\u0627 \u0631\u0627 \u0628\u0627\u0632\u0633\u0627\u0632\u06cc \u06a9\u0646\u06cc\u062f\u060c \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u062c\u0627\u0633\u0648\u0633 \u0628\u0647 \u0634\u0645\u0627 \u0627\u06cc\u0646 \u0627\u0645\u06a9\u0627\u0646 \u0631\u0627 \u0645\u06cc\u200c\u062f\u0647\u062f \u062a\u0627 \u0631\u0648\u0634\u200c\u0647\u0627\u06cc \u062e\u0627\u0635\u06cc \u0631\u0627 \u0628\u062f\u0648\u0646 \u062a\u063a\u06cc\u06cc\u0631 \u06a9\u062f \u0627\u0635\u0644\u06cc \u062c\u062f\u0627\u0633\u0627\u0632\u06cc \u0648 \u0645\u0633\u062e\u0631\u0647 \u06a9\u0646\u06cc\u062f.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<p>\u0628\u0647 \u0637\u0648\u0631 \u062e\u0644\u0627\u0635\u0647\u060c <code>@Spy<\/code> \u062d\u0627\u0634\u06cc\u0647 \u0646\u0648\u06cc\u0633\u06cc \u0632\u0645\u0627\u0646\u06cc \u0645\u0641\u06cc\u062f \u0627\u0633\u062a \u06a9\u0647 \u0634\u0645\u0627 \u0646\u06cc\u0627\u0632 \u0628\u0647 \u06a9\u0646\u062a\u0631\u0644 \u06cc\u0627 \u062a\u0623\u06cc\u06cc\u062f \u0631\u0641\u062a\u0627\u0631\u0647\u0627\u06cc \u062e\u0627\u0635 \u06cc\u06a9 \u0634\u06cc \u0648\u0627\u0642\u0639\u06cc \u062f\u0627\u0631\u06cc\u062f \u062f\u0631 \u062d\u0627\u0644\u06cc \u06a9\u0647 \u0628\u0642\u06cc\u0647 \u0631\u0641\u062a\u0627\u0631 \u0634\u06cc\u0621 \u0631\u0627 \u0628\u062f\u0648\u0646 \u062a\u063a\u06cc\u06cc\u0631 \u0646\u06af\u0647 \u062f\u0627\u0631\u06cc\u062f.<\/p>\n<\/p><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Summarize this content to 400 words in Persian Lang \u0631\u0627 @Spy \u062d\u0627\u0634\u06cc\u0647 \u0646\u0648\u06cc\u0633\u06cc \u062f\u0631 JUnit\u060c \u0628\u0647 \u0648\u06cc\u0698\u0647 \u0647\u0646\u06af\u0627\u0645\u06cc \u06a9\u0647 \u0628\u0627 Mockito \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u0634\u0648\u062f\u060c \u0628\u0631\u0627\u06cc \u0627\u06cc\u062c\u0627\u062f \u062c\u0627\u0633\u0648\u0633\u06cc \u0628\u0631 \u0631\u0648\u06cc \u06cc\u06a9 \u0634\u06cc \u0648\u0627\u0642\u0639\u06cc \u0627\u0639\u0645\u0627\u0644 \u0645\u06cc \u0634\u0648\u062f. \u062c\u0627\u0633\u0648\u0633 \u06cc\u06a9 \u062a\u0645\u0633\u062e\u0631 \u062c\u0632\u0626\u06cc \u0627\u0633\u062a\u060c \u0628\u0647 \u0627\u06cc\u0646 \u0645\u0639\u0646\u06cc \u06a9\u0647 \u0634\u0645\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0628\u0631\u062e\u06cc \u0627\u0632 \u0631\u0648\u0634 \u0647\u0627\u06cc \u0634\u06cc \u0631\u0627 \u0645\u0633\u062e\u0631\u0647 \u06a9\u0646\u06cc\u062f &hellip;<\/p>\n","protected":false},"author":2,"featured_media":73180,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"fifu_image_url":"","fifu_image_alt":"","footnotes":""},"categories":[339],"tags":[],"class_list":["post-73179","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dev"],"_links":{"self":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts\/73179","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/comments?post=73179"}],"version-history":[{"count":0,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts\/73179\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media\/73180"}],"wp:attachment":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media?parent=73179"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/categories?post=73179"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/tags?post=73179"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}