struts2 单元测试 validation.xml文件
最近使用了struts2的校验框架,用于在服务器端对用户提交的数据进行校验,遇到点问题。
问题是:测试类OperatorActionTest 始终检查不到regId和password字段为空(测试时两个属性都赋值null)。
以下是action类,validation.xml文件,以及测试类:
action类:
public class OperatorAction extends BaseActionSupport {// for loginprivate String regId;private String password;/** * operator登录 * * @return */public String login() {System.out.println("login------------");*******逻辑部分省略**********return SUCCESS;} *******getter和setter省略**********}OperatorAction-login-validation.xml文件:
<!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.2//EN" "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd"><validators><field name="regId"><field-validator type="requiredstring"><param name="trim">true</param><message>用户名不能为空</message></field-validator></field><field name="password"><field-validator type="requiredstring"><param name="trim">true</param><message>密码不能为空</message></field-validator></field></validators>
测试类:
public class OperatorActionTest extends TestCase {private ActionValidatorManager actionValidatorManager;private OperatorAction operatorAction;public void setUp() throws Exception {operatorAction = new OperatorAction();super.setUp();}public void testAddCardValidation() throws ValidationException {operatorAction.setRegId(null);operatorAction.setPassword(null);ValidationAware validationAware = new ValidationAwareSupport();ValidatorContext validationContext = new DelegatingValidatorContext(validationAware);actionValidatorManager = ActionValidatorManagerFactory.getInstance(); //以下是调试用的四种validate方法,都试过了// actionValidatorManager.validate(operatorAction, "");// actionValidatorManager.validate(operatorAction, "",// validationContext);// actionValidatorManager.validate(operatorAction, "", "login");actionValidatorManager.validate(operatorAction, "", validationContext,"login");if (validationContext.hasErrors() || operatorAction.hasErrors()) {System.out.println("检查到问题");} else {System.out.println("没有检查到问题");}}public ActionValidatorManager getActionValidatorManager() {return actionValidatorManager;}public void setActionValidatorManager(ActionValidatorManager actionValidatorManager) {this.actionValidatorManager = actionValidatorManager;}}执行结果:没有检查到问题