分类
测试:单元测试、集成测试、系统测试
原则:
单元测试需要遵循FIRST原则:
F-FAST(快速原则):单元测试应该是可以快速运行的,在各种测试方法中,单元测试的运行速度是最快的,大型项目的单元测试通常应该在几分钟内运行完毕。
I-Independent(独立原则):单元测试应该是可以独立运行的,单元测试用例互相无强依赖,无对外部资源的强依赖。
R-Repeatabl(可重复原则):单元测试应该可以稳定重复的运行,并且每次运行的结果都是稳定可靠的。
S-Self Validating(自我验证原则):单元测试应该是用例自动进行验证的,不能依赖人工验证。
T-Timely(及时原则):单元测试必须及时进行编写,更新和维护,以保证用例可以随着业务代码的变化动态的保障质量。
常用方法
1.debug
作用:断点调试某些代码,查看执行流程,分析错误。
使用范围:必备技能
2.测试框架
java中的junit测试框架小型项目不怎么使用。
3.断言
void assertEquals(boolean expected, boolean actual):检查两个变量或者等式是否平衡
void assertTrue(boolean expected, boolean actual):检查条件为真
void assertFalse(boolean condition):检查条件为假
void assertNotNull(Object object):检查对象不为空
void assertNull(Object object):检查对象为空
void assertSame(boolean condition):assertSame() 方法检查两个相关对象是否指向同一个对象
void assertNotSame(boolean condition):assertNotSame() 方法检查两个相关对象是否不指向同一个对象
void assertArrayEquals(expectedArray, resultArray):assertArrayEquals() 方法检查两个数组是否相等
判断值是否为真 repect_true(val)
判断一个值是否与期望值相等 repect_eq(exp,val)
判断两个值的大小 repect_le(val1,val2)
判断一个字符串是否与期望值相等 repect_streq(exp,val)
测试
public class TaoYng20210309 {
public int add(int a,int b){
return a + b;
}
public int subtract(int a, int b){
return a - b;
}
public int multi(int a, int b){
return a * b;
}
public int divide(int a, int b){
return a / b;
}
}
//测试类
import com.taoying.test.TaoYng20210309;
import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
@EnableAutoConfiguration(exclude={DataSourceAutoConfiguration.class})
@RunWith(SpringRunner.class)
@SpringBootTest
public class SpringbootJpaApplicationTests {
/**
* 初始化方法:
* 用于资源申请,所有测试方法在执行之前都会先执行该方法
* 使用@Before注解
*/
@Before
public void init(){ System.out.println("测试方法执行之前都要执行该初始化方法.."); }
/**
* 释放资源方法:
* 在所有测试方法执行完后,都会自动执行该方法
* 使用注解@After
*/
@After
public void close(){ System.out.println("测试方法执行完后都要执行该释放资源的方法..");}
TaoYng20210309 ty = new TaoYng20210309();
@Test
public void add() {
int add = ty.add(1, 2);
Assert.assertEquals(2,add);
}
@Test
public void subtract() {
Assert.assertEquals(0,ty.subtract(3,3));
}
@Test
public void multi() {
}
@Test
public void divide() {
}