メソッドを試してテストするためにMockito 1.9.5を使用しています。メソッドは次のとおりです。
@Autowire
AuditLogRepository auditlogRepository;
//method stuff abbreviated out
if (authentic.isAuthorized()) {
menuService.updateUserWithMenu( authentic );
AuditLog auditor = Helper.buildAuditor( authentic );
auditor.setAccessPoint( request.getRequestURL().toString() );
....
AuditLog createdAuditLog = auditlogRepository.save( auditor );
logger.debug( "Created AuditLog id = " + createdAuditLog.getID() );
...
}
そして、これが私がそれをテストしようとしている方法です:
@InjectMocks
LoginController loginController;
@Mock
AuditLog aLog;
@Mock
AuditLog createdAuditLog;
@Mock
AuditLogRepository auditlogRepositoryMock;
@Before
public void setUp() {
MockitoAnnotations.initMocks( this );
this.mockMvc = MockMvcBuilders.standaloneSetup( loginController ).build();
}
@Test
public void testLogin() throws Exception {
...
AuditLog aLog = mock( AuditLog.class );
when( auditlogRepositoryMock.save( aLog ) ).thenReturn(createdAuditLog );
when( createdAuditLog.getID() ).thenReturn( new Long( 1 ) );
私が何をしても、プリミティブを除いて、Mockito は常に null を返すようです。しかし、私のコードは戻り値に基づいて動作します。だから私の質問は、ヌルポインタを取得せずにこれをテストする方法はありますか? Mockito はメソッド呼び出しからオブジェクトを返すことができますか?