逃的过初一逃不过十五之三个输入框文本内容检测的实现及测试
上周偷懒来着,就没有完成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~