需要知道一些常规的正则表达式语句,然后可以仿照规则写出一下正则表达式语句。然后是关于junit测试.

知道了一个之前看过的文档,然后有功夫就看一下那个文档就可以,或者后面找时间搜索一下。

正则表达式是一个字符串:

由^开头

由$结尾。

[]表示可取值的范围。

\\d表示数字。

下面两个表达式等效:

^[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测试的更多相关文章

  1. 复利计算器(软件工程)及Junit测试———郭志豪

    计算:1.本金为100万,利率或者投资回报率为3%,投资年限为30年,那么,30年后所获得的利息收入:按复利计算公式来计算就是:1,000,000×(1+3%)^30 客户提出: 2.如果按照单利计算 ...

  2. Junit测试框架 Tips

    关于Junit测试框架使用的几点总结: 1.Junit中的测试注解: @Test →每个测试方法前都需要添加该注解,这样才能使你的测试方法交给Junit去执行. @Before →在每个测试方法执行前 ...

  3. junit测试,使用classpath和file 加载文件的区别

    用junit测试发现一个问题,怎么加载配置文件?一直都出现这样的错误 ERROR: org.springframework.test.context.TestContextManager - Caug ...

  4. Junit测试Controller(MockMVC使用),传输@RequestBody数据解决办法

    一.单元测试的目的 简单来说就是在我们增加或者改动一些代码以后对所有逻辑的一个检测,尤其是在我们后期修改后(不论是增加新功能,修改bug),都可以做到重新测试的工作.以减少我们在发布的时候出现更过甚至 ...

  5. 单元测试实战 - Junit测试

    一.对加法函数进行测试 1.实例化被测单元(方法):类名 实例名=new 类名([参数]) 2.调用被测单元,对比预期值和输出值(实际值): 在没有junit测试工具的情况下,我们要进行如下的测试代码 ...

  6. Android Junit测试框架

    对应用进行单元测试: 使用Junit测试框架,是正规Android开发的必用技术.在Junit中可以得到组件,可以模拟发送事件和检测程序处理的正确性. 1.配置指令集和函数库: (1)配置指令集,指定 ...

  7. 在Eclipse中生成接口的JUnit测试类

    在Spring相关应用中,我们经常使用“接口” + “实现类” 的形式,为了方便,使用Eclipse自动生成Junit测试类. 1. 类名-new-Other-java-Junit-Junit Tes ...

  8. Struts2+Spring+Mybatis+Junit 测试

    Struts2+Spring+Mybatis+Junit 测试 博客分类: HtmlUnit Junit Spring 测试 Mybatis  package com.action.kioskmoni ...

  9. Junit测试打印详细的log日志,可以看到sql

    Junit测试打印详细的log日志,可以看到sql 在log4j.xml的日志配置文件中,把日志级别从info级别调整到debug级别: <?xml version="1.0" ...

随机推荐

  1. APP-FND-01706: Error Updating TABLE_NAME In FND_DOCUMENT_SEQUENCES (文档 ID 338026.1)

    In this Document Symptoms Cause Solution Applies to: Oracle Order Management - Version 11.5.10.0 and ...

  2. poj3037

    首先到每个点的速度实际上是一个定值,就是v0*2^(起点与当前点高度差) 所以当前点i到任意一个相邻点的时间都是一个定值, 不难想到构图最短路径 ..] ,,,);       dy:..] ,,-, ...

  3. .NET程序内,访问私有或者保护成员的技巧

    如果是C++,我们可以计算对象内成员的位置,然后偏移指针以访问类型的所有非公开成员.但是.NET对象完全受GC管理,地址根本无法得到,并且也无法通过指针调用方法. 当然... 这是一种很不值得推荐的技 ...

  4. -_-#【减少 DOM 元素】textarea, script 延迟渲染

    淘宝详情页的 BigRender 优化与存放大块 HTML 内容的最佳方式 淘宝详情页的BigRender优化的最佳方式 <!DOCTYPE html> <html> < ...

  5. 设置将 Microsoft Azure 的网络基础结构以支持设置为灾难恢复站点

    Prateek Sharma 云 + Enterprise 高级项目经理 Azure SiteRecovery (ASR)可以将Microsoft Azure用作您的虚拟机的灾难恢复站点. 当管理 ...

  6. 处理MVC中默认的Json方法返回时间的问题

    利用 Json方法返回 数据时,如果有时间格式,会变成 "\/Date(1369419656217)\/" 这个样子,问了同事找到个解决方法 using Newtonsoft.Js ...

  7. 如何判断 Android 应用的 Apk 签名是否一致?

    可以比对apk签名的fingerprint. 假定安装了JDK,如果想查HelloWorld.apk所使用的签名的fingerprint,可以这样做: 1. 查找apk里的rsa文件 (Windows ...

  8. Android 再按一次退出程序

    实现代码: private long exitTime = 0; /** * 捕捉返回事件按钮 * * 因为此 Activity 继承 TabActivity 用 onKeyDown 无响应,所以改用 ...

  9. android ListView上拉加载更多 下拉刷新功能实现(采用pull-to-refresh)

    Android实现上拉加载更多功能以及下拉刷新功能, 采用了目前比较火的PullToRefresh,他是目前实现比较好的下拉刷新的类库. 目前他支持的控件有:ListView, ExpandableL ...

  10. Servlet3.0学习总结(四)——使用注解标注监听器(Listener)

    Servlet3.0提供@WebListener注解将一个实现了特定监听器接口的类定义为监听器,这样我们在web应用中使用监听器时,也不再需要在web.xml文件中配置监听器的相关描述信息了. 下面我 ...