MoinMoin Logo
  • Comments
  • Immutable Page
  • Menu
    • Navigation
    • RecentChanges
    • FindPage
    • Local Site Map
    • Help
    • HelpContents
    • HelpOnMoinWikiSyntax
    • Display
    • Attachments
    • Info
    • Raw Text
    • Print View
    • Edit
    • Load
    • Save
  • Login

Navigation

  • Start
  • Sitemap

Upload page content

You can upload content for the page named below. If you change the page name, you can also upload content for another page. If the page name is empty, we derive the page name from the file name.

File to load page content from
Page name
Comment

Revision 11 as of 2024-03-07 13:27:57
  • Mockito

Mockito

Unit tests mocks framework.

  • https://site.mockito.org/

  • https://github.com/mockito/mockito

  • https://www.tutorialspoint.com/mockito/mockito_quick_guide.htm

Annotations

  • @InjectMocks

    • Constructor injection
    • Property setter injection
    • Field injection
  • @Mock
  • @Test

Methods purpose

  • mock(): create a mock
  • when(): specify how a mock should behave
  • verify(): to check mocked/stubbed methods were called with given arguments
  • any(): matches anything
  • anyString(): matches any non-null String
  • eq(): argument that is equal to the given value.
  • doNothing().when(objx).objMethod() : void
  • doReturn(response).when(objx).objMethod() : return object
  • doThrow(Exception.class).when(objx).objMethod() : throw exception

Example

   1 import static org.mockito.Matchers.any;
   2 import static org.mockito.Matchers.anyObject;
   3 import static org.mockito.Matchers.eq;
   4 import static org.mockito.Mockito.doCallRealMethod;
   5 import static org.mockito.Mockito.mock;
   6 import static org.mockito.Mockito.when;
   7 import org.junit.Assert;
   8 import org.junit.Test;
   9 import org.springframework.mock.env.MockEnvironment;
  10 
  11 public class TestX{
  12     @Test
  13     public void testXyz() {
  14         MockEnvironment env = new MockEnvironment();
  15         env.setProperty("intx", "1");
  16         env.setProperty("intz", "10");
  17         String rsp1="rsp1";
  18         String rsp2="rsp2";
  19         ClassX cx = mock(ClassX.class);
  20         when(cx.getURL(anyObject(), anyObject(), eq("aaaa"))).thenReturn(rsp1).thenReturn(rsp2);
  21         doCallRealMethod().when(cx).initialize(any(), any());
  22         doCallRealMethod().when(cx).doStuff(any(), any());
  23 
  24         cx.initialize(null, env);
  25         List<String> responsex = cx.doStuff(null, "kkll"));
  26         Assert.assertEquals(123, responsex.size());
  27     }
  28 }

BDDMockito

Behavior Driven Development style of writing tests uses //given //when //then comments as fundamental parts of your test methods.

  • https://en.wikipedia.org/wiki/Behavior-driven_development

   1 import static org.mockito.BDDMockito.*;
   2 
   3  Dummy dummy = mock(Dummy.class);
   4  Foo foo = new Foo(dummy);
   5 
   6  public void doStuff() throws Exception {
   7    //given
   8    given(dummy.getObj()).willReturn(new Obj());
   9 
  10    //when
  11    PlentyStuff ps = shop.getObj();
  12 
  13    //then
  14    assertThat(ps, containObj());
  15  }
  • MoinMoin Powered
  • Python Powered
  • GPL licensed
  • Valid HTML 4.01