逃的过初一逃不过十五之三个输入框文本内容检测的实现及测试

上周偷懒来着,就没有完成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~

时间: 2024-12-23 10:05:02

逃的过初一逃不过十五之三个输入框文本内容检测的实现及测试的相关文章

[WebGL入门]十五,为多边形涂抹颜色(顶点颜色的指定)

注:文章译自http://wgld.org/,原作者杉本雅広(doxas),文章中如果有我的额外说明,我会加上[lufy:],另外,鄙人webgl研究还不够深入,一些专业词语,如果翻译有误,欢迎大家指正. 本次的demo的运行结果 增加顶点属性的个数 上次,终于绘制了一个三角形,但是只绘制了一个纯白色的多边形.这次,给多边形的顶点中添加颜色属性,基本上做的事情和上一篇文章一样,只是稍微增加点步骤而已.首先,就像以前多次重复的那样,顶点可以包含很多种情报(参考:顶点缓存和基础),而且每一个情报叫做

爪哇国新游记之十五----泛型动态数组类

import java.lang.reflect.Array; /** * 泛型动态数组类 * */ public class DynamicArray<T extends Object>{ private T[] arr; private Class<T> type; private int currCount; private static final int InitSize=2; public DynamicArray(Class<T> type){ this.

十五年学不会英语的原因

学习前预热: ---轻松学英语第一步:建立英语思维    为什么大家学英语学得这么累,最后依然对英语糊糊涂涂?原因只有一个--就是我们的学习能力太差了!!我们的老师太笨了!!!    这篇文章主要是给大家讲英语的基本结构, 看了这篇文章,你们会突然就明白,英语怎么会如此简单!!    首先我们来看下面这两张地图(左边是中国地图,右边是英国地图):?    例如,我们中国人一见面第一句话是--"你吃了吗."英国人一见面的第一句话是--"今天天气怎么样? what's the w

第三十五象 戊戌

第三十五象 戊戌 谶曰 西方有人 足踏神京 帝出不还 叁台扶倾 颂曰 黑云黯黯自西来 帝子临河筑金台 南有兵戎北有火 中兴曾见有奇才 金圣叹注解: 此象疑有出狩事,亦乱兆也. 推背图网解: 解图 图中有三人同行,两人在前,一人在后,三个人的目的都是一座城楼,按照易经中的方向,三人都是从东南方而来,这就是我们能够从卦图中得到的全部信息. 解谶 西方有人,足踏神京,帝出不还,三台扶倾.第一句”西方有人”说明这一象的主角来自西方,第二句”神京”特指京城,出自南朝宋谢王<世祖孝武皇帝歌>”刷定四海,肇

每周进度条(第十五周)

第十五周进度条   第十五周 所花时间 1h 代码量(行)  100 博客量(篇)  1 学到的知识 对图片的处理 在Android程序中加入图片

秒杀多线程第十五篇 关键段,事件,互斥量,信号量的“遗弃”问题

版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[+] 秒杀多线程第十五篇 关键段,事件,互斥量,信号量的“遗弃”问题 在<秒杀多线程第九篇 经典线程同步总结 关键段 事件 互斥量 信号量>中对经典多线程同步互斥问题进行了回顾和总结,这篇文章对Windows系统下常用的线程同步互斥机制——关键段.事件.互斥量.信号量进行了总结.有网友问到互斥量能处理“遗弃”问题,事件和信号量是否也能处理“遗弃”问题.因此本文将对事件和信号量作个试验,看看事件和信号量能否处理“遗弃”问题. 一.

深入浅出Zabbix 3.0 -- 第十五章 Zabbix 协议与API

今天是六.一儿童节,祝小朋友们节日快乐!发完此文就带我家小朋友出去玩耍了. 第十五章 Zabbix 协议与API 本章将介绍和开发相关的Zabbix协议和API的内容,通过对Zabbix协议和API的深入了解,你可以利用Zabbix协议编写客户端程序并将其嵌入的产品或系统中,并将数据发送到Zabbix server,这在无法安装Zabbixagent等程序的场景(例如专用的嵌入式系统)中非常有用.你也可以利用Zabbix API开发自己的业务系统,或灵活的与现有系统整合集成. 15.1 Zabb

每周进度表(第十五周)

  第十五周 所花时间(包括上课) 5(小时) 代码量(行) 200 博客量(篇) 7 了解到的知识点 如何对界面进行美化 如何处理anroid里的图片

code第一部分数组:第十五题 矩阵翻转(图像翻转)

code第一部分数组:第十五题 矩阵翻转(图像翻转) 首先想到,纯模拟,从外到内一圈一圈的转,但这个方法太慢.如下图,首先沿着副对角线翻转一次,然后沿着水平中线翻转一次. 源代码 #include <iostream> #include <vector> using namespace std; //引用类型形参 void swap(int &n,int &m) { int temp=n; n=m; m=temp; } //指针类型形参 void swap1(int