正则表达式 和 junit测试
需要知道一些常规的正则表达式语句,然后可以仿照规则写出一下正则表达式语句。然后是关于junit测试.
知道了一个之前看过的文档,然后有功夫就看一下那个文档就可以,或者后面找时间搜索一下。
正则表达式是一个字符串:
由^开头
由$结尾。
[]表示可取值的范围。
下面两个表达式等效:
^[0-9]*$
^\\d*$
都表示若干数字
下面这个表示多个汉字:
^[\u4e00-\u9fa5]{0,}$
汉字的码集是从\u4e00-\u9fa5
所有英文字母和数字:
^[a-zA-Z0-9]*$
4到40位数字和字母:
^[a-zA-Z0-9]{4,40}$
至少一位应为字母:
^[a-zA-Z]+$
\w与 ^[a-zA-Z0-9]*$ 等效。
所以我们可以写一个简易邮箱的验证:
regex = "^\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*$";
通过 String test = new string(forTest);
test.matches(regex)来比较
- 以下代码:
- package com.letben.regex;
- public class Regex {
- public static void main(String[] args) {
- String regex = "^[0-9]*$";
- String msg = "34";
- boolean isok = msg.matches(regex);
- System.out.println(isok);
- regex = "^\\d*$";
- System.out.println(msg.matches(regex));
- System.out.println("***********************");
- regex = "^\\d{0,3}$";
- System.out.println(msg.matches(regex));
- System.out.println("***************************");
- regex = "^[\u4e00-\u9fa5]{0,}$";
- msg = "汉字";
- System.out.println(msg.matches(regex));
- System.out.println("********************************");
- //regex = "^[A-Za-z0-9]+$";
- regex = "^[A-Za-z0-9]{4,40}$";
- msg = "1234";
- System.out.println(msg.matches(regex));
- // 全是英文字母
- regex = "^[A-Za-z]+$";
- msg = "ABCcddsd";
- System.out.println(msg.matches(regex));
- regex = "^\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*$";
- msg = "liguohua1110@163.com";
- System.out.println(msg.matches(regex));
- }
- }
测试:
这个讲的就很浅,比起之前学校里面讲过的。
要被测试的类:
- package Calculate;
- public class Calculate {
- public int add(int a,int b){
- return a+b;
- }
- public int minus(int a,int b){
- return a-b;
- }
- }
右键当前类,创建一个Junit test case,这个就是测试用例,对于 开发来说我们可以创立与之对应的很多个测试用例,构成测试用例集,一旦测试用例集写完善以后,就可以让不定数量的源代码过来接受检测,这个测试用例集其实野蛮费脑筋的。这个就是 传说中的白盒测试。
总之,现在还没有那么深入,不过这个 的确是要被写的。现在现有这么一个印象。笔记千万不能丢就是了!换句话说,我不太想背这个地方,随着使用次数的增多,慢慢会熟悉这里面的原委的。爆出来的错误:errors属于语法错误。Failure属于逻辑错误。
- package Calculate;
- import static org.junit.Assert.*;
- import org.junit.After;
- import org.junit.AfterClass;
- import org.junit.Before;
- import org.junit.BeforeClass;
- import org.junit.Test;
- public class TestCalculate {
- /*这是一套
- Calculate c ;
- //在每一次方法使用之前调用获得该类的对象
- @Before
- public void getMyClass(){
- c=new Calculate();
- }
- //在每一次方法使用之后释放该类的对象
- @After
- public void dismissMyClass(){
- c=null;
- }
- */
- //这里面放一个全的测试用例,到时候执行就可以了。
- //用以检测不同的结果
- static Calculate c;
- //在类创建之前得到这个对象
- @BeforeClass
- public static void getMyClass(){
- c = new Calculate();
- }
- //在类创建之后,释放这个对象。
- @AfterClass
- public static void dismissMyClass(){
- c = null;
- }
- @Test
- public void testAdd(){
- int result = c.add(4, 5);
- assertEquals(9, result);
- }
- @Test
- public void testMinus(){
- int result = c.minus(4, 3);
- assertEquals(1, result);
- }
- }
正则表达式 和 junit测试的更多相关文章
- 复利计算器(软件工程)及Junit测试———郭志豪
计算:1.本金为100万,利率或者投资回报率为3%,投资年限为30年,那么,30年后所获得的利息收入:按复利计算公式来计算就是:1,000,000×(1+3%)^30 客户提出: 2.如果按照单利计算 ...
- Junit测试框架 Tips
关于Junit测试框架使用的几点总结: 1.Junit中的测试注解: @Test →每个测试方法前都需要添加该注解,这样才能使你的测试方法交给Junit去执行. @Before →在每个测试方法执行前 ...
- junit测试,使用classpath和file 加载文件的区别
用junit测试发现一个问题,怎么加载配置文件?一直都出现这样的错误 ERROR: org.springframework.test.context.TestContextManager - Caug ...
- Junit测试Controller(MockMVC使用),传输@RequestBody数据解决办法
一.单元测试的目的 简单来说就是在我们增加或者改动一些代码以后对所有逻辑的一个检测,尤其是在我们后期修改后(不论是增加新功能,修改bug),都可以做到重新测试的工作.以减少我们在发布的时候出现更过甚至 ...
- 单元测试实战 - Junit测试
一.对加法函数进行测试 1.实例化被测单元(方法):类名 实例名=new 类名([参数]) 2.调用被测单元,对比预期值和输出值(实际值): 在没有junit测试工具的情况下,我们要进行如下的测试代码 ...
- Android Junit测试框架
对应用进行单元测试: 使用Junit测试框架,是正规Android开发的必用技术.在Junit中可以得到组件,可以模拟发送事件和检测程序处理的正确性. 1.配置指令集和函数库: (1)配置指令集,指定 ...
- 在Eclipse中生成接口的JUnit测试类
在Spring相关应用中,我们经常使用“接口” + “实现类” 的形式,为了方便,使用Eclipse自动生成Junit测试类. 1. 类名-new-Other-java-Junit-Junit Tes ...
- Struts2+Spring+Mybatis+Junit 测试
Struts2+Spring+Mybatis+Junit 测试 博客分类: HtmlUnit Junit Spring 测试 Mybatis package com.action.kioskmoni ...
- Junit测试打印详细的log日志,可以看到sql
Junit测试打印详细的log日志,可以看到sql 在log4j.xml的日志配置文件中,把日志级别从info级别调整到debug级别: <?xml version="1.0" ...
随机推荐
- 深入浅MFC
视图类CView 在MFC"文档/视图"架构中,CView类是所有视图类的基类,它提供了用户自定义视图类的公共接口.在"文档/视图"架构中,文档负责管理和维护数 ...
- my sql 实现批量操作及注意问题
使用in来实现批量操作是个很不错的想法: /*实现查询*/ select * from goods where goodsid in (102,103); /*实现批理删除*/ delete from ...
- 用jQuery 处理XML-- jQuery与XML
jQuery与XML 快而强的遍历系统,华丽丽的选择器语法,这或许是jQuery 那么流行的原因.当然它还有详尽的文档.它主要是用来处理HTML的,但在这里妳会看到如何应用到XML. 使用jQuery ...
- 《深度探索C++对象模型》学习笔记
1.转型其实是一种编译器指令, 大部分情况下它并不改变一个指针所含的真正地址,它只影响"被指出之内存的大小和内容"的解释方式. 2.Global objects的内存保证会在程序启 ...
- POJ 1185 (状态压缩DP)
中文题目,题意就不说了. 不得不说这是一道十分经典的状态压缩DP的题目. 思路: 通过分析可以发现,第i行的格子能不能放大炮仅与第i-1和i-2行的放法有关,而与前面的放法无关,因此,如果我们知道了i ...
- 【CSS3】Advanced9:Transformation
1.transform:rotate(-10deg) skew(20deg,10deg) scaling(2/1,2) translate/移动(100px,200px) 2.transform:ma ...
- iOS开发——View的透明属性hidden、alpha、opaque
Hidden.Alpha.Opaque的区别 在iOS中,每个View都有Hidden.Alpha.Opaque三个关于透明的属性,官方文档介绍如下: 1. @property(nonatomic) ...
- 初来咋到先试试windows live writer
据说这个工具用来写博客很好用的,先试试哦... 来说说具体使用方法吧:(摘抄自博客园) 下面首先讲用Windows Live Writer 2012发博客: 一.软件准备: 最新版的是Windows ...
- linux c 及 c++打印调用者函数caller function的方法,包括arm c平台
一般情况下,编译的时候可能需要加 -g 选项,对于android ndk的-g选项添加请参见android类目下的另一篇文章. 以下文章中的__builtin_return_address() 宏,若 ...
- CentosX64使用yum快速搭建xen虚拟化环境
Xen的大名想必已经被众SA所熟知.Xen 是一个开放源代码虚拟机监视器,由剑桥大学开发.它打算在单个计算机上运行多达100个满特征的操作系统.操作系统必须进行显式地修改(“移植”)以在Xen上运行( ...