2016-04-09 4 views
2

Я новичок в тестировании Junit. Как написать тестовый пример junit для анонимных внутренних методов, таких как rowmapper. Это метод моего класса, для которого я хочу написать тестовый пример Junit.как написать тестовый пример junit для внутренних методов?

public List<AssetAvailabilityRef> getAssetAvailabilityRef() { 

     List<AssetAvailabilityRef> refList = this.jdbcTemplate.query(MaintenanceLdrDao.assetAvailabilityRefQuery, 
       new RowMapper<AssetAvailabilityRef>() { 

        @Override 
        public AssetAvailabilityRef mapRow(ResultSet rs, int arg1) throws SQLException { 
         AssetAvailabilityRef assetAvailabilityRef = new AssetAvailabilityRef(); 
         assetAvailabilityRef.setSourceCode(rs.getString("source_asset_availability")); 
         assetAvailabilityRef.setDestinationCode(rs.getString("dest_asset_availability")); 
         assetAvailabilityRef.setLoadType(rs.getInt("load_type")); 

         return assetAvailabilityRef; 
        } 
       }); 

     return refList; 
    } 
+0

Один из способов - создать открытый класс 'RowMapper', а затем написать JUnit для него. Обычно внутренние классы считаются черными ящиками, которые скрыты от внешнего мира, и поэтому JUnits не написаны для них. – user2004685

+1

спасибо за ур ответ – priyanka

ответ

1

Один из способов сделать RowMapper общественный класс, а затем написать JUnit для него.

Обычно внутренние классы считаются черными ящиками, которые скрыты от внешнего мира, и поэтому JUnits не написаны для них.

Вот фрагмент кода:

public class AssetAvailabilityRefRowMapper implements RowMapper { 
    @Override 
    public AssetAvailabilityRef mapRow(ResultSet rs, int arg1) throws SQLException { 
     AssetAvailabilityRef assetAvailabilityRef = new AssetAvailabilityRef(); 
     assetAvailabilityRef.setSourceCode(rs.getString("source_asset_availability")); 
     assetAvailabilityRef.setDestinationCode(rs.getString("dest_asset_availability")); 
     assetAvailabilityRef.setLoadType(rs.getInt("load_type")); 
     return assetAvailabilityRef; 
    } 
} 

public List<AssetAvailabilityRef> getAssetAvailabilityRef() { 
    return (List<AssetAvailabilityRef>) this.jdbcTemplate.query(
              MaintenanceLdrDao.assetAvailabilityRefQuery, 
              new AssetAvailabilityRefRowMapper()); 
} 

Теперь, вы должны написать JUnits для обоих этих классов.

Кроме того, вы можете высмеять AssetAvailabilityRefRowMapper с использованием Mockito или EasyMock при написании JUnits для вашего класса обслуживания.

Смежные вопросы