今天犯了个很低级错误

if(userInfoArray==null)//如果为空
{
userInfoArray=new ArrayCollection();
userInfoArray.addItem(userInfo);
mycookie.clear();
mycookie.data.userInfoArray=userInfoArray;
}
else//不为空
{
for(var i:int=0;i<userInfoArray.length;i++)
{

if(userInfoArray[i].UserName==userInfo.UserName)
{
userInfoArray[i].UserMD5=userInfo.UserMD5;
userInfoArray[i].Remembered=userInfo.Remembered;
userInfoArray[i].UserID=userInfo.UserID;
}
if(i==userInfoArray.length-1&&userInfoArray[i].UserName!=userInfo.UserName)
userInfoArray.addItem(userInfo);
}
mycookie.clear();
mycookie.data.userInfoArray=userInfoArray;
}   

这段程序犯了个很低级错误,当userInfoArray为null的时候或者长度大于0的时候会正常工作,但是当其长度为0的时候,则向里面添加元素就会失败。应该将第一句改为如下情况即可:
if(userInfoArray==null||userInfoArray.length==0)//如果为空

测试:边界测试.............测试驱动开发....
看来是很必要的,这种小疏漏很难发现....
posted @ 2010-08-04 22:59  macula7  阅读(85)  评论(0编辑  收藏  举报