如何使用Junit和Mockito测试DaoImpl方法

维沙尔·卡瓦德(Vishal Kawade):

我在我的应用程序中使用带有jdbcTemplate的spring,并且我想测试DaoImpl类。有用于插入,更新和检索操作的实现

道类方法

//dummy class
public class PlayerDAOImpl implements PlayerDAO {

@Autowired
private JdbcTemplate jdbcTemplate;


public Integer getPlayer(int playerId) {

    String sql = "SELECT ccount(1) FROM PLAYER WHERE 
     PLAYER_ID = ?";
     return  (jdbcTemplate. queryForObject("Query", new Object[]{playerId}, 
  Integer.class)!=0); //here only throws exception

}
//other methods
}

为此,我编写了Test类,该类可以成功执行以进行插入和更新,但是在检索时却给出了nullpointer异常。

 @RunWith(MockitoJUnitRunner.class)
 class Test{
 @InjectMocks
  PlayerDAOImpl dao;
 @Mock
 JdbcTemplate jdbcTemplate;

  @Test
  public void retrieveResult(){

   Mockito.when(dao.getPlayer(int playerId)).thenReturn(false);

   //Assert Statement

  }}

我已经谷歌搜索/尝试,但没有找到对我有用的解决方案。因此,如何测试该方法或注入jdbcTemplate使其成功。

感谢帮助!!

古斯塔沃·帕西尼(Gustavo Passini):

问题在于您正在尝试模拟被测类(PlayerDAOImpl)而不是其依赖项(JdbcTemplate)。

将您的模拟改为:

Mockito.when(jdbcTemplate.queryForObject(Mockito.any(), Mockito.any(), Mockito.any()).thenReturn(COUNT);

COUNT的位置Integer,然后根据的返回值编写您的断言dao.getPlayer

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用JUnit和/或Mockito测试void方法

如何使用junit和mockito测试springjdbcTemplate

如何使用JUnit或Mockito测试匿名方法?

使用JUnit和Mockito测试方法结果的最佳方法

如何使用Junit和Mockito使用Spring存储库测试void方法

如何使用JUnit或Mockito测试使用无参数和返回值的Random()方法

我应该如何用JUNIT和Mockito测试此方法

如何使用Mockito和JUnit在Spring Boot中测试DELETE方法

如何使用Junit和Mockito测试Spring验证器

如何使用JUnit和Mockito测试自定义JsonSerializer

如何使用Junit和Mockito测试Sum Double值?

如何使用JUnit和Mockito测试我的JwtAuthentication类?

如何使用 mockito 和 junit 测试此功能?

在Java中,如何使用断言测试在JUnit无效的Mockito的方法?

测试void方法的行为junit和mockito

如何在JUnit测试中使用Mockito?

使用 Junit 和 Mockito 的 Rest API 的 Junit 测试用例

如何测试休息控制器,静态util的使用JUnit和调用的Mockito

如何使用 Mockito 和 Junit 模拟 ZonedDateTime

使用Junit和Mockito测试catch块逻辑

使用和的Mockito到的JUnit测试图像

使用Junit和Mockito嵌套异常问题测试POST Api

使用 JUnit 和 Mockito 编写单元测试

JUnit测试的InputStreamReader的使用的Mockito

使用Mockito进行JUnit测试

当使用InvalidUseOfMatchersException的Mockito强制CloneNotSupportedException的在复制()方法被测试的junit

如何使用Mockito在Junit中测试开关案例

如何使用Mockito和Junit模拟静态方法中存在的void方法调用?

如何使用Mockito测试DAO方法?