zoukankan      html  css  js  c++  java
  • 逃的过初一逃不过十五之三个输入框文本内容检测的实现及测试

    上周偷懒来着,就没有完成EditBox的实现,来进行测试...终于,这周逃不过了,老师布置的任务是完成三个文本框的输入并同时检测文本内容...

    题目要求如下:

    允许1到6个英文字符或数字,按OK结束
    有效等价类: 长度:1到6;字符:a-z,A-Z,0-9 
    无效等价类:长度:0,7;字符:英文、数字以外字符,控制字符,标点符号等
    略有不同的地方是这回要求三个文本框同时输入内容,点击OK之后同时对三个文本框的内容进行检测,并输出检测结果。
    好~偷懒考虑,我就选择了比较好用的JAVA进行实现,主要原因是界面和字符串处理比较易于完成~
    好了,代码如下:
    package testing;
    
    import java.awt.event.MouseAdapter;
    import java.awt.event.MouseEvent;
    
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JPanel;
    import javax.swing.JTextArea;
    
    public class testing {
        
        static boolean result;
    
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            
            //界面
            JFrame frame = new JFrame();
            frame.setTitle("Testing");
            frame.setSize(250,200);
            frame.setLocationRelativeTo(null);
            frame.setVisible(true);
            
            JPanel jp_top = new JPanel();
            jp_top.setLayout(null);
            jp_top.setBounds(0, 0, 300,300);
            
            final JTextArea []text = new JTextArea[3];
            for(int i=0;i<3;i++){
                text[i] = new JTextArea();
                text[i].setBounds(20, 20+40*i, 100, 20);
                jp_top.add(text[i]);
            }
            
            JButton button = new JButton("OK!");
            button.setBounds(140, 100, 80, 20);
            jp_top.add(button);
            
            //check        
            result = true;
            button.addMouseListener(new MouseAdapter(){
                public void mouseClicked(MouseEvent e){
                    String []str = new String[3];
                    for(int i=0;i<3;i++){
                        str[i] = new String();
                        str[i] = text[i].getText();
                    }
                    for(int i=0;i<3;i++){
                        if(str[i].length()>0 && str[i].length()<7){
                            for(int p=str[i].length()-1;p>=0;p--){
                                if(!Character.isDigit((str[i].charAt(p)))&&!Character.isLetter(str[i].charAt(p))) {
                                    result = false;
                                    break;                            
                                }
                            }
                        }
                        else {
                            result = false;
                        }
                    }
                    System.out.println(result);
                }
            });        
            
            frame.add(jp_top);
            frame.repaint();
        }
    }

    展示一下代码的效果:

    嗯...终于算是完成了编码过程,下面进行测试!

    回顾一下上周完成的测试用例(采用等价类划分的方法):

    No. 输入 预期输出
    1 123456 OK
    2 abcdef OK
    3 ABCDEF OK
    4 Aa1Bb2 OK
    5 abc OK
    6 abcdefg ERROR(字符串长度超过6)
    7 空(什么都不输入) ERROR(无输入)
    8 abc//b ERROR(包含无效字符)
    9 ab,c ERROR(包含无效字符)

    由于有多个测试用例,又有三个可供输入的文本框,所以我准备对测试用例进行分组以提高测试的效率。

    按照预期输出对测试用例进行了如下的分组(考虑到输出结果要包含各种情况)

    (1,2,3),(3,4,5),(1,2,6),(1,2,7),(1,2,8),(1,2,9)

    得到测试结果如下:

    用例组合 测试结果
    (1,2,3) True
    (3,4,5) True
    (1,2,6) False
    (1,2,7) False
    (1,2,8) False
    (1,2,9) False

    总体来说,结果还是很令人满意的...^_^

    附上测试过程中的几张截图:

    第一次把代码什么的放出来,真是捉急,大家发现有什么错误的话欢迎一块讨论!THX~

  • 相关阅读:
    Silverlight 游戏开发小技巧:扇形排列元素
    Silverlight C# 游戏开发:L9 天空盒
    快乐技术开发者沙龙银光聚会第二期
    Silverlight 游戏开发小技巧:动感弹出动画
    Silverlight 游戏开发:可重用的拖拽控件
    获微软MVP
    Silverlight 游戏开发小技巧:动感小菜单1
    Protobuf语言指南
    使用xrdp或Xmanager 远程连接 CentOS6
    Linux 下使用 NMON 分析系统性能(其他如dstat、iostat)
  • 原文地址:https://www.cnblogs.com/ccvamy/p/4374858.html
Copyright © 2011-2022 走看看