今天完成的事情:
ng-disabled参数说明
1.valid、invalid、pristine和dirty
valid标记表单元素有效;
invalid标记表单元素无效;
pristine表示表单元素是纯净的,用户未操作过;
dirty表示表单元素是已被用户操作过;
2.更改css属性
.ng-pristine {}
.ng-dirty {}
.ng-valid {}
.ng-invalid {}
注意事项
1.novalidate
标准浏览器如火狐,谷歌等对HTML5有很好的支持。众所周知,HTML5中input的type属性已经具备了验证功能。如果要自己定义验证方式,那么请加上novalidate属性,以此避开浏览器自行验证。
2.type类型
HTML5的type属性可以包含text、email、number等
3.type="number"还是ng-pattern="/^[0-9]{6}$/"
可以使用type="number"来限制输入框只能输入数字,当然也可以用ng-pattern来验证用户输入,从而过滤掉非数字输入。
给登录页做了表单填写不完整提交按钮灰色,填写完整自动解禁加验证提示效果
<body>
<form method="post" action="#" onsubmit="adaptValue();">
<table width="500" border="0">
<tr>
<td width="100px">用户名</td>
<td class="input" width="200"><input type="text" name="username" id="username" onblur="v_username();" onkeyup="v_username();"/></td>
<td><span class="username"></span></td>
</tr>
<tr>
<td>密码</td>
<td class="input"><input type="password" name="password" id="password" onblur="v_password();" onkeyup="v_password();"/></td>
<td><span class="password"></span></td>
</tr>
<tr>
<td> </td>
<td><input type="submit" id="submit" value="提交" disabled="disabled"/></td>
</tr>
</table>
</form>
</body>
</html>
<script type="text/javascript">
function enableSubmit(bool){
if(bool)$("#submit").removeAttr("disabled");
else $("#submit").attr("disabled","disabled");
}
//验证多少项,多少个false
var flags = [false,false];
//flags全为true时提交按钮解除禁用
function v_submitbutton(){
for(f in flags) if(!flags[f]) {
enableSubmit(false);
return;
}
enableSubmit(true);
}
//各个表单去验证
function v_username(){
var username = $("#username").val();
if(username=="") { flags[0]=false;enableSubmit(false);}
else{flags[0] = true;}
v_submitbutton();
}
function v_password(){
var password = $("#password").val();
if(password=="") { flags[1]=false;enableSubmit(false);}
else{flags[1] = true;}
v_submitbutton();
}
function adaptValue(){
return true;
}
</script>
明天计划的事情:
评审,小课堂
问题:
暂无
收获:
单元测试与 Mock 方法
单元测试是对应用中的某一个模块的功能进行验证。在单元测试中,我们常遇到的问题是应用中其它的协同模块尚未开发完成,或者被测试模块需要和一些不容易构造、比较复杂的对象进行交互。另外,由于不能肯定其它模块的正确性,我们也无法确定测试中发现的问题是由哪个模块引起的。
Mock 对象能够模拟其它协同模块的行为,被测试模块通过与 Mock 对象协作,可以获得一个孤立的测试环境。此外,使用 Mock 对象还可以模拟在应用中不容易构造(如 HttpServletRequest 必须在 Servlet 容器中才能构造出来)和比较复杂的对象(如 JDBC 中的 ResultSet 对象),从而使测试顺利进行。
EasyMock 简介
手动的构造 Mock 对象会给开发人员带来额外的编码量,而且这些为创建 Mock 对象而编写的代码很有可能引入错误。目前,有许多开源项目对动态构建 Mock 对象提供了支持,这些项目能够根据现有的接口或类动态生成,这样不仅能避免额外的编码工作,同时也降低了引入错误的可能。
EasyMock 是一套用于通过简单的方法对于给定的接口生成 Mock 对象的类库。它提供对接口的模拟,能够通过录制、回放、检查三步来完成大体的测试过程,可以验证方法的调用种类、次数、顺序,可以令 Mock 对象返回指定的值或抛出指定异常。通过 EasyMock,我们可以方便的构造 Mock 对象从而使单元测试顺利进行。
评论