正则表达式 和 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" ...
随机推荐
- poj2229Sumsets
http://poj.org/problem?id=2229 挺好的一公式.. #include <iostream> #include<cstdio> #include< ...
- 六月计划#2A(6.10-6.16)
17/35 STL BZOJ_1588_&_Codevs_1296_[HNOI2002]_营业额统计(平衡树/set)(set重做) BZOJ_1208_&_Codevs_1258_[ ...
- gif压缩
保存选择颜色值小点会小很多
- 【转】java中静态代码块的用法 static用法详解
原文网址:http://www.cnblogs.com/panjun-Donet/archive/2010/08/10/1796209.html (一)java 静态代码块 静态方法区别一般情况下,如 ...
- js循环array,json,map
var str = '[{"uname":"王强","day":"2010/06/17"},{"uname&q ...
- golang安装卸载 linux+windows+raspberryPI 平台
参考 https://golang.org/doc/install 自ECUG2013洗脑回来,就渴望早点接触Go 听着许式伟和谢孟军的演讲 发现go的网络库的确很强大,高负载利器,语言的一些精简导 ...
- 通过Java SE 7自带的监控服务(WatchService API)实现类似.NET FileWatcher的功能
Java SE 7 Tutorial中增加了一个监控目录变更情况的示例,用于介绍其新发布的WatchService API. 但对于用惯了.NET FileWatcher的用户而言,如果用于项目我认为 ...
- 一致性哈希算法原理及Java实现
一致性哈希算法在1997年由麻省理工学院提出的一种分布式哈希(DHT)实现算法,设计目标是为了解决因特网中的热点(Hot spot)问题,初衷和CARP十分类似.一致性哈希修正了CARP使用的简 单 ...
- CodeForces 368B Sereja and Suffixes
题意:给你一个序列,问你从l位置到结尾有多少个不同的数字. 水题,设dp[i]表示从i位置到结尾不同数字的个数,那么dp[i] = dp[i+1] + (vis[a[i]] == 0),在O(n)时间 ...
- 【原】Spark on YARN
在YARN上运行Spark 在Spark0.6.0版本开始支持YARN模式,随后的版本在逐渐地完善. 在YARN上启动Spark 确保HADOOP_CONF_DIR或YARN_CONF_DIR属性的值 ...