Difference between revisions of "Testing"

From DarkWiki
Jump to: navigation, search
(Created page with "==Mockito== ===Argument capture=== <source lang="java"> ArgumentCaptor<UserAccountDto> updatedAccount = ArgumentCaptor.forClass(UserAccountDto.class); Mockit...")
 
(Argument capture)
Line 2: Line 2:
  
 
===Argument capture===
 
===Argument capture===
 +
 +
To test to verify a certain value has been passed to a function, you need to use an ArgumentCaptor.
  
 
<source lang="java">
 
<source lang="java">
        ArgumentCaptor<UserAccountDto> updatedAccount = ArgumentCaptor.forClass(UserAccountDto.class);
+
    ...
        Mockito.verify(recoClient).saveUserAccount(updatedAccount.capture());
+
    ArgumentCaptor<UserRecord> userRecordCapture = ArgumentCaptor.forClass(UserRecord.class);
        Assert.assertEquals("The activation date should have be recorded", 12345L, updatedAccount.getValue().getActivationDate());
+
    Mockito.verify(userRepository).saveUserAccount(userRecordCapture.capture());
        Assert.assertEquals("The salt should have been updated", "NEWSALT", updatedAccount.getValue().getSalt());
+
    Assert.assertEquals("username", userRecordCapture.getValue().getName());
 
</source>
 
</source>

Revision as of 12:10, 6 October 2017

Mockito

Argument capture

To test to verify a certain value has been passed to a function, you need to use an ArgumentCaptor.

    ...
    ArgumentCaptor<UserRecord> userRecordCapture = ArgumentCaptor.forClass(UserRecord.class);
    Mockito.verify(userRepository).saveUserAccount(userRecordCapture.capture());
    Assert.assertEquals("username", userRecordCapture.getValue().getName());