标签:frame equal null blog repos .class tom 概念 一点
目录
[TOC]
Junit是java语言单元测试框架,在java程序中,一个工作单元通常是指一个方法,那么单元测试也就是对一个方法进行测试,程序员一般通过Junit来完成自己代码的一个功能测试,所以单元测试又可以叫做程序员测试,如果测试人员在熟悉方法逻辑及其实现的情况下,也可以写Junit单元测试来进行接口测试,即白盒测试。
市面上比较流行的服务器: tomcat(war)、jboss(ear)、weblogic
用的比较多的项目构建工具: ant、maven:可以在线管理项目的依赖
注: maven中央仓库网址
在pom.xml里面添加一个junit依赖
修改pom.xml
```xml
```
import junit.framework.TestCase;
// 所有编写的测试类都继承自junit.framework.TestCase
public class Example01 extends TestCase{
// 测试类中所有的方法均需要以test开头
public void testExam01(){
System.out.println("this is the first case");
}
public void testExam02() {
System.out.println("This is the second case");
}
}
4. 可以使用**注解**的方式(装饰器)来标注test方法(**@Test**,此时测试方法**不必以test开头**,也不必继承**TestCase**
java
package com.junit.exam01;
import org.junit.Test;
public class DecoExam{
// 以使用注解的方式来标注test方法此时测试方法不必以test开头
@Test
public void DecoExamA() {
System.out.println("This is test A");
}
@Test
public void DecoExamB() {
System.out.println("This is test B");
}
}
```
在所有的测试方法执行之前执行一次
package com.junit.exam01;
import org.junit.Before;
import org.junit.Test;
import junit.framework.TestCase;
// 注意一下,用继承的方式before注解不管用了
public class DecoExamBefore{
@Before
public void funcBefore() {
System.out.println("This is Before");
}
@Test
public void DecoExamA() {
System.out.println("This is test A");
}
@Test
public void DecoExamB() {
System.out.println("This is test B");
}
}
在所有的测试方法执行之后执行一次
package com.junit.exam01;
import org.junit.After;
import org.junit.Test;
public class DecoExamAfter {
@After
public void funcBefore() {
System.out.println("This is After");
}
@Test
public void DecoExamA() {
System.out.println("This is test A");
}
@Test
public void DecoExamB() {
System.out.println("This is test B");
}
}
用BeforeClass注解的方法在类加载的时候首先被执行一次
package com.junit.exam01;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;
public class DecoExamClassBefore2After {
private int result = 0;
// 使用BeforeClass和AfterClass注解需要使用static关键字
@BeforeClass
public static void beforeExam() {
System.out.println("This is class before");
}
@AfterClass
public static void adterExam() {
System.out.println("This is class after");
}
@Test
public void examA() {
System.out.println("This is ExamA");
}
@Test
public void examB() {
System.out.println("This is ExamB");
}
}
判断两个数据是否一致,如果一致则表示测试通过,否则表示测试不通过,抛出断言错误
判断两个数据是否不一致,如果不一致则表示测试通过,否则表示测试不通过,抛出断言错误
判断某数据是否为空,如果为空,则测试通过,否则抛出断言错误
判断某数据是否为空,如果不为空,则测试通过,否则抛出断言错误
判断某数据是否为真,如果为假,则表示测试通过,否则抛出断言错误
判断某数据是否为真,如果为真,则表示测试通过,否则抛出断言错误
package com.junit.exam01;
import static org.junit.Assert.assertEquals;
import org.junit.Before;
import org.junit.Test;
import com.junit.calc.CalcExam;
import junit.framework.Assert;
public class DemoTestCalc {
private CalcExam calc;
@Before
public void InitCalc() {
calc = new CalcExam();
}
@Test
public void add() {
calc.add(3);
int result = calc.getResult();
System.out.println("实际结果为:" + result);
Assert.assertEquals(3, result);
}
@Test
public void sub() {
calc.sub(3);
int result = calc.getResult();
System.out.println("实际结果为:" + result);
Assert.assertEquals(-3, result);
}
@Test
public void multi() {
calc.multi(3);
int result = calc.getResult();
System.out.println("实际结果为:" + result);
Assert.assertEquals(0, result);
}
@Test
public void div() {
calc.div(3);
int result = calc.getResult();
System.out.println("实际结果为:" + result);
Assert.assertEquals(0, result);
}
}
//***************************************************************************************************//
// 以下是Clac类的内容
package com.junit.calc;
public class CalcExam {
private int result = 0;
public void add(int a) {
result += a;
}
public void sub(int a) {
result -= a;
}
public void div(int a) {
if (a == 0) return;
result /= a;
}
public void multi(int a) {
result *= a;
}
public int getResult() {
return this.result;
}
}
//----------------------------------------------------------------------------------------------------//
要实现测试集的功能需要使用一个特殊的Runner,因此我们需要向@RunWith标注中传递一个参数Suite.class(即 **@RunWith (Suite.class)** )。同时,我们还需另一个标注@SuiteClasses用以表明这个类是一个打包测试类,基本语法为 **@SuiteClasses({... , ... , ...})** ,其中的参数为需要测试的类
有了上述两个标注之后,就已经完整的表达了所有的含义,因此下面的类已经无关紧要,内容为空即可
package com.junit.exam01;
import org.junit.runner.RunWith;
import org.junit.runners.Suite;
import org.junit.runners.Suite.SuiteClasses;
// 固定写法,传递参数Suite.class
@RunWith(Suite.class)
// 将要测试的类写到里面
@SuiteClasses({
// 由于用到的测试类都在同一个包中也不需要额外打包
DemoTestCalc.class,
DecoExamAfter.class,
DecoExamBefore.class,
DecoExamTest.class,
DecoExamClassBefore2After.class
})
// 这个类为空即可,但是必须保留
public class DemoTestSuite {
}
标签:frame equal null blog repos .class tom 概念 一点
原文地址:https://www.cnblogs.com/gupan/p/9015819.html