正则表达式 和 junit测试

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了正则表达式 和 junit测试相关的知识,希望对你有一定的参考价值。

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

 

 

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

 

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

^开头

$结尾。

[]表示可取值的范围。

\\\\d表示数字。

下面两个表达式等效:

^[0-9]*$

^\\\\d*$

都表示若干数字

下面这个表示多个汉字:

^[\\u4e00-\\u9fa5]{0,}$

汉字的码集是从\\u4e00-\\u9fa5

所有英文字母和数字:

^[a-zA-Z0-9]*$     

440位数字和字母:

^[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 = "[email protected]";
           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 test 如何做Java静态方法测试

每日一道招式:正则表达式实现Mod4

通过 Java 正则表达式提取 semver 版本字符串的片段

如何将JUnit 4测试添加到JUnit 3测试套件中

在测试之间传递JUnit数据

如何测试文本片段是不是是 Quoted-printable 编码的