正则表达式 和 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" ...
随机推荐
- Apache Struts ClassLoader操作漏洞
漏洞版本: Apache Struts 2.x 漏洞描述: CVE ID:CVE-2014-0094 Struts2 是第二代基于Model-View-Controller (MVC)模型的java企 ...
- jquery easyui datebox 的使用
看了jquery easyui databox的官方api,还可以加入倒是很简单,但是想要获得他的值和修改值就很费劲,不知道怎么弄,试了n次终于搞定.这里总结一下,供有相同问题的人查询. 1. 官方a ...
- Java问题汇集(1)
1.javax.el.PropertyNotFoundException: Property 'Price' not found on type pet.petshop.dto.WareDto 简答: ...
- Apache搭建多个站点
如何用Apache搭建的网站系统上运行多个站点呢?最平常的大概有3种方法. 第一种:单IP不同端口 第二种:多IP同端口(独立IP的虚拟空间) 第三种:域名绑定根目录的方式(共享IP的虚拟空间) 下面 ...
- jQuery append xmlNode 修改 xml 内容
jQuery append xmlNode 修改 xml 内容 http://blog.darkthread.net/blogs/darkthreadtw/archive/2009/04/29/jqu ...
- C语言setjmp函数使用
C语言中可以使用goto进行程序跳转,但是goto只能使用在一个函数内部,不能实现在不同函数之间的跳转,C语言因此提供了setjmp和longjmp函数实现此功能,一般进行异常处理. 从函数名称可以看 ...
- selenium使用整理
学习selenium自动化有一段时间了,今天一位自动化测试大侠给了我指导.如下: 第一步,先用selenium的固定脚本把手工测试的流程写成脚本 eg: driver.FindElement(By.I ...
- seg格式文件的分析
s ,r, c1, c2 第r行的c1列到 c2列的值为s
- 浅谈Xcode5和Xcode7在系统创建的文件夹和文件中的区别
*:first-child { margin-top: 0 !important; } body > *:last-child { margin-bottom: 0 !important; } ...
- Java笔记(十二)……类中各部分加载顺序及存放位置问题
什么时候会加载类 使用到类中的内容时加载,三种情况: 创建对象:new StaticDemo(); 使用类中的静态成员:StaticCode.num = 9; StaticCode.getNum() ...