【发布时间】:2015-07-30 04:47:41
【问题描述】:
@Override
public void validate(FacesContext facesContext, UIComponent uiComponent,
Object emailId) throws ValidatorException {
int userId = 0;
try {
AddNewUserDAO addNewUserDAO = new AddNewUserDAO();
userId = addNewUserDAO.getUserIdWithUserName(emailId.toString());
} catch (Exception exception) {
LOGGER.error(exception);
}
matcher = pattern.matcher(emailId.toString());
if (!matcher.matches()) {
FacesMessage msg = new FacesMessage(new MessageProvider().getValue("prometheus_emailvalidation"));
msg.setSeverity(FacesMessage.SEVERITY_ERROR);
throw new ValidatorException(msg);
}
if (userId != 0) {
FacesMessage msg = new FacesMessage(
new MessageProvider().getValue("prometheus_userexists"));
msg.setSeverity(FacesMessage.SEVERITY_ERROR);
throw new ValidatorException(msg);
}
}
我正在尝试用 Jmockit 编写一个测试用例,但我得到空指针异常,在这种方法中我们使用数据库查询(userId = addNewUserDAO.getUserIdWithUserName(emailId.toString());)
这就是为什么无法 mockit,如何在此类验证器方法中模拟数据库查询和其他类的对象实例化
【问题讨论】:
标签: java validation jsf jmockit