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~

  • 相关阅读:
    js面向对象:对象创建/继承的演化过程
    20189215 2018-2019-2 《密码与安全新技术专题》第3周作业
    2018-2019-2 20189215 《网络攻防技术》第二周作业
    2018-2019-2 20189215 《网络攻防实践》安全工具研究
    20189215 2018-2019-2 《密码与安全新技术专题》第1周作业
    2018-2019-2 20189215 《网络攻防技术》第一周作业
    2018-2019-1 20189215 《文献管理与信息分析》第三周课程学习总结
    2018-2019-1 20189215 《深入理解计算机系统》第三章学习总结
    2018-2019-1 20189215 《Linux内核原理与分析》第九周作业
    2018-2019-1 20189215 《Linux内核原理与分析》第八周作业
  • 原文地址:https://www.cnblogs.com/ccvamy/p/4374858.html
Copyright © 2011-2022 走看看