如何在Spring中为Row Mapper类编写junit测试用例

时间:2016-08-14 11:05:17

标签: java junit

嗨这是我的Row Mapper课程。

public class UserRowMapper implements RowMapper<UserData> {

    @Override
    public UserData mapRow(ResultSet resultSet, int line) throws SQLException {
        UserData userData = new UserData();  
        try
        {
            userData.setUserID(resultSet.getString("User_ID"));
            userData.setUserName(resultSet.getString("User_Name"));  
            userData.setUserPassword(resultSet.getString("User_Password"));  
            userData.setUserRole(resultSet.getString("User_Role")); 
            userData.setUserStatus(resultSet.getString("User_Status")); 
            userData.setUserLogStatus(resultSet.getString("UserLog_Status")); 
            userData.setUserAccountName(resultSet.getString("User_AccountName")); 
            userData.setUserAccountID(resultSet.getString("User_AccountID")); 
            userData.setUserEmailID(resultSet.getString("User_EmailID")); 
            userData.setUserPasswordStatus(resultSet.getString("User_Password_ExpiryStatus")); 
            userData.setUserIDStatus(resultSet.getString("User_ID_Status")); 
            userData.setAcatTenantID(resultSet.getLong("acatTenant_ID")); 
            userData.setUserRoleCode(resultSet.getLong("User_Role_Code")); 
            userData.setUserSkillSetCode(resultSet.getLong("User_SkillSet_Code")); 
            userData.setUserAccountCode(resultSet.getLong("User_Account_Code")); 

            return userData;
        }
        catch (EmptyResultDataAccessException e)
        {
            return null;
        }
    }

}

这是我的Model类。

public class UserData {

    private String userID;
    private String userPassword;
    private String userRole;
    private String userStatus;
    private String userLogStatus;
    private String userName;
    private String userAccountName;
    private String userAccountID;
    private String userIDStatus;
    private String userPasswordStatus;
    private String userEmailID;  

    private String userAdminID;
    private String deactivationComment;

    private String reqPageID;
    private String userSessionID;    
    private String reqFunctionalityID;  

    private long userAccountCode;
    private long userRoleCode;
    private long userSkillSetCode;
    private long acatTenantID;


    public long getUserAccountCode() {
        return userAccountCode;
    }
    public void setUserAccountCode(long userAccountCode) {
        this.userAccountCode = userAccountCode;
    }

    public long getUserRoleCode() {
        return userRoleCode;
    }
    public void setUserRoleCode(long userRoleCode) {
        this.userRoleCode = userRoleCode;
    }

    public long getUserSkillSetCode() {
        return userSkillSetCode;
    }
    public void setUserSkillSetCode(long userSkillSetCode) {
        this.userSkillSetCode = userSkillSetCode;
    }

    public long getAcatTenantID() {
        return acatTenantID;
    }
    public void setAcatTenantID(long acatTenantID) {
        this.acatTenantID = acatTenantID;
    }

    public String getReqFunctionalityID() {
        return reqFunctionalityID;
    }
    public void setReqFunctionalityID(String reqFunctionalityID) {
        this.reqFunctionalityID = reqFunctionalityID;
    }

    public String getReqPageID() {
        return reqPageID;
    }
    public void setReqPageID(String reqPageID) {
        this.reqPageID = reqPageID;
    }

    public String getUserSessionID() {
        return userSessionID;
    }
    public void setUserSessionID(String userSessionID) {
        this.userSessionID = userSessionID;
    }

    public String getUserAdminID() {
        return userAdminID;
    }
    public void setUserAdminID(String userAdminID) {
        this.userAdminID = userAdminID;
    }

    public String getDeactivationComment() {
        return deactivationComment;
    }
    public void setDeactivationComment(String deactivationComment) {
        this.deactivationComment = deactivationComment;
    }
    public String getUserIDStatus() {
        return userIDStatus;
    }
    public void setUserIDStatus(String userIDStatus) {
        this.userIDStatus = userIDStatus;
    }
    public String getUserPasswordStatus() {
        return userPasswordStatus;
    }
    public void setUserPasswordStatus(String userPasswordStatus) {
        this.userPasswordStatus = userPasswordStatus;
    }

    public String getUserEmailID() {
        return userEmailID;
    }
    public void setUserEmailID(String userEmailID) {
        this.userEmailID = userEmailID;
    }
    public String getUserAccountID() {
        return userAccountID;
    }
    public void setUserAccountID(String userAccountID) {
        this.userAccountID = userAccountID;
    }
    public String getUserAccountName() {
        return userAccountName;
    }
    public void setUserAccountName(String userAccountName) {
        this.userAccountName = userAccountName;
    }
    public String getUserID() {
        return userID;
    }
    public void setUserID(String userID) {
        this.userID = userID;
    }
    public String getUserPassword() {
        return userPassword;
    }
    public void setUserPassword(String userPassword) {
        this.userPassword = userPassword;
    }
    public String getUserRole() {
        return userRole;
    }
    public void setUserRole(String userRole) {
        this.userRole = userRole;
    }
    public String getUserStatus() {
        return userStatus;
    }
    public void setUserStatus(String userStatus) {
        this.userStatus = userStatus;
    }
    public String getUserLogStatus() {
        return userLogStatus;
    }
    public void setUserLogStatus(String userLogStatus) {
        this.userLogStatus = userLogStatus;
    }
    public String getUserName() {
        return userName;
    }
    public void setUserName(String userName) {
        this.userName = userName;
    }

}

上面的类是我的Row Mapper和Model类。我不知道如何为Row Mapper类编写junit测试类。请指导我如何为这些类编写junit测试。

嗨,这是我上面几个类的Junit测试代码。

public class UserRowMapperTest {
   UserRowMapper userRowMapper=null;

    @Before
    public void runBeforeEachTest(){
        userRowMapper= new UserRowMapper();

    }
    @After
    public void runAfterEachTest(){
        userRowMapper=null;
    }
    @Test
    public void testMapRow(){
        userRowMapper.mapRow(resultSet, line);
    }    
}

1 个答案:

答案 0 :(得分:1)

从我的角度来看 这里没有什么可以测试

您应该仅为具有某些业务逻辑的方法创建单元测试。我没有看到测试使用getter和setter的方法的原因,因为通常他们什么也不做。

但是,如果您只想练习,那么建议您可以为单元测试做些什么。首先检查一些questions如何编写单元测试,因为感觉你不明白你需要/想要实现的目标。

一般来说,这是你想要的草图:

@Test
public void testMapRow(){
    // SETUP SUT
    UserRowMapper userRowMapper = new UserRowMapper()    
    // fill (prepare) in the Object that you want to pass to a method.
    ResultSet resultSet = createResultSet();

    // EXERCISE
    UserData resultData = userRowMapper.mapRow(resultSet, line);

    // VERIFY
    Assert.assertEquals(expectedValue, resultData.getSomeValue())
}

P.S。顺便说一句,此方法中的line参数没有任何意义,因为您不使用它。

关于NullPointerException,请关注quite popular question