package com.siva.springboot.javaguruonline.repository; import java.sql.ResultSet; import java.util.ArrayList; import java.util.List; import org.junit.Assert; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.Mockito; import org.mockito.invocation.InvocationOnMock; import org.mockito.stubbing.Answer; import org.springframework.jdbc.core.RowMapper; import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate; import org.springframework.test.context.junit4.SpringRunner; import com.siva.springboot.javaguruonline.model.EmployeeDetails; @RunWith(SpringRunner.class) /** * * @author Siva * */ //@SpringBootTest(classes = SpringbootJpaSwaggerSonarqubeApplication.class) public class EmployeeDaoImplTest { @InjectMocks public EmployeeDaoImpl employeeDao; @Mock private NamedParameterJdbcTemplate namedParameterJdbcTemplate; @SuppressWarnings("unchecked") @Test public void testGetAllEmployeeDetails(){ Listlist = new ArrayList (); EmployeeDetails employeeDetails = new EmployeeDetails(); employeeDetails.setEmpId(1); employeeDetails.setEmpName("siva"); list.add(employeeDetails); Mockito.when(namedParameterJdbcTemplate.query(Mockito.anyString(), Mockito.any(RowMapper.class))) .thenAnswer(new Answer >() { @Override public List
answer(InvocationOnMock invocation) throws Throwable { // Fetch the method arguments Object[] args = invocation.getArguments(); // Fetch the row mapper instance from the arguments RowMapper rm = (RowMapper ) args[1]; // Create a mock result set and setup an expectation on it ResultSet rs = Mockito.mock(ResultSet.class); Mockito.when(rs.getInt("emp_id")).thenReturn(employeeDetails.getEmpId()); Mockito.when(rs.getString("emp_name")).thenReturn(employeeDetails.getEmpName()); // Invoke the row mapper EmployeeDetails actual = rm.mapRow(rs, 0); // Assert the result of the row mapper execution Assert.assertEquals(employeeDetails.getEmpName(), actual.getEmpName()); // Return your created list for the template#query call return list; } }); employeeDao.getEmployeeDetails(); Assert.assertNotNull(list); } }
Thursday, March 11, 2021
How to mock ResultSet , NamedParameterJdbcTemplate , RowMapper
Subscribe to:
Post Comments (Atom)
We are really grateful for your blog post. You will find a lot of approaches after visiting your post. I was exactly searching for. Thanks for such post and please keep it up. Great work.
ReplyDeleteBest casinos in Las Vegas for 2022 - DrmCD
ReplyDeleteLas Vegas 아산 출장샵 casinos with 과천 출장마사지 the best of Vegas' hottest slots · 10. Wynn & 수원 출장마사지 Encore · 9. 논산 출장마사지 Casino at Virgin Hotels Las Vegas · 군포 출장안마 8. Caesars Palace
Can any once update same test scenario in kotlin by mockk
ReplyDeleteI like your comment thanks for sharing.
ReplyDeletefixing Water purifier in Nagpur
https://saglamproxy.com
ReplyDeletemetin2 proxy
proxy satın al
knight online proxy
mobil proxy satın al
67ZVYL
Uşak
ReplyDeleteAnkara
Adıyaman
Hatay
Şırnak
GFHA5Q
Kırşehir Lojistik
ReplyDeleteHakkari Lojistik
Kars Lojistik
Konya Lojistik
Kilis Lojistik
8HH8
859E5
ReplyDeletebuy steroids
Ardahan Evden Eve Nakliyat
Kırşehir Evden Eve Nakliyat
Kayseri Evden Eve Nakliyat
Erzurum Evden Eve Nakliyat
Bitlis Evden Eve Nakliyat
buy testosterone propionat
Çerkezköy Cam Balkon
Silivri Cam Balkon
A62DD
ReplyDeleteKonya Şehirler Arası Nakliyat
Samsun Lojistik
Edirne Evden Eve Nakliyat
Afyon Şehirler Arası Nakliyat
Bursa Şehir İçi Nakliyat
Ceek Coin Hangi Borsada
Denizli Şehir İçi Nakliyat
Artvin Şehirler Arası Nakliyat
Etlik Parke Ustası