• JUnit4 学习总结


    一、JUnit介绍

    Junit是 Erich Gamma 和 Kent Beck编写的测试框架,是我们在软件工程所说的白盒测试。

    使用也很简单,只需要在Eclipse导入JAR包即可;

    下载地址:https://github.com/downloads/KentBeck/junit/junit4.10.zip

    二、JUnit4和JUnit3的比较

    JUnit3 JUnit4
    测试类需要继承TestCase 不需要继承任何类
    测试函数约定:public、void、test开头、无参数 需要在测试函数前面加上@Test

    每个测试函数之前setUp执行

    @Before
    每个测试函数之后tearDown执行 @After
    没有类加载时执行的函数 @BeforeClass和@AfterClass

     

    三、JUnit4详解

    1.@Test用来标注测试函数

    2.@Before用来标注此函数在每次测试函数运行之前运行

    3.@After用来标注此函数在每次测试函数运行之后运行

    4.@BeforeClass用来标注在测试开始时运行;

    5.@AfterClass 用来标注在测试结束时运行;

    6.Assert类中有很多断言,比如assertEquals("期望值","实际值");


    代码示例:

    Person.java

    package org.xiazdong;
    
    public class Person {
    	private String name;
    	private int age;
    	public String getName() {
    		return name;
    	}
    	public void setName(String name) {
    		this.name = name;
    	}
    	public int getAge() {
    		return age;
    	}
    	public void setAge(int age) {
    		this.age = age;
    	}
    	public Person(String name, int age) {
    		this.name = name;
    		this.age = age;
    	}
    	
    }
    

    PersonTest.java

    此测试是用JUnit3测试的;

    package org.xiazdong.junit;
    
    import junit.framework.Assert;
    import junit.framework.TestCase;
    
    import org.xiazdong.Person;
    
    public class PersonTest extends TestCase {
    	
    	@Override
    	protected void setUp() throws Exception {
    		System.out.println("setUp");
    	}
    
    	@Override
    	protected void tearDown() throws Exception {
    		System.out.println("tearDown");
    	}
    
    	public void testFun1(){
    		Person p = new Person("xiazdong",20);
    		Assert.assertEquals("xiazdong", p.getName());
    		Assert.assertEquals(20, p.getAge());
    	}
    	public void testFun2(){
    		Person p = new Person("xiazdong",20);
    		Assert.assertEquals("xiazdong", p.getName());
    		Assert.assertEquals(20, p.getAge());
    	}
    }
    

    PersonTest2.java

    此测试是用JUnit4测试的;

    package org.xiazdong.junit;
    
    import junit.framework.Assert;
    
    import org.junit.After;
    import org.junit.AfterClass;
    import org.junit.Before;
    import org.junit.BeforeClass;
    import org.junit.Test;
    import org.xiazdong.Person;
    
    public class PersonTest2 {
    	
    	@Before
    	public void before(){
    		System.out.println("before");
    	}
    	@After
    	public void after(){
    		System.out.println("After");
    	}
    	@BeforeClass
    	public void beforeClass(){
    		System.out.println("BeforeClass");
    	}
    	@AfterClass
    	public void afterClass(){
    		System.out.println("AfterClass");
    	}
    	@Test
    	public void testFun1(){
    		Person p = new Person("xiazdong",20);
    		Assert.assertEquals("xiazdong", p.getName());
    		Assert.assertEquals(20, p.getAge());
    	}
    	@Test
    	public void testFun2(){
    		Person p = new Person("xiazdong",20);
    		Assert.assertEquals("xiazdong", p.getName());
    		Assert.assertEquals(20, p.getAge());
    	}
    }
    




    作者:xiazdong
    出处:http://blog.xiazdong.info
    本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。
  • 相关阅读:
    Laravel Passport token过期后判断refresh_token是否过期
    js 数组随机排序
    jquery的animate关于background-position属性
    css hack 汇整
    顶部导航--向上滚动的时候出现,向下滚动的时候隐藏
    手机端全局样式表整理(mobile)
    AR专用汉明码
    css常用命名规则
    晚11点
    当 IDENTITY_INSERT 设置为 OFF 时,不能为表‘XXX’中的标识列插入显式值。
  • 原文地址:https://www.cnblogs.com/xiazdong/p/3058344.html
Copyright © 2020-2023  润新知