1. 单元测试Junit
1.1 什么是单元测试?(掌握)
对部分代码进行测试。
1.2 Junit的特点?(掌握)
-
是一个第三方的工具。(把别人写的代码导入项目中)(专业叫法:导jar包)
-
如果运行结果显示绿色,表示运行结果是正确的。
如果运行结果显示红色,表示运行结果是错误的。
1.3 基本用法:(掌握)
1,一定要先写一个方法。
2,在这个方法的上面写@Test
3,鼠标点一下@Test 按alt + 回车,点击Junit4
此时就可以自动导包。
如果自动导包失败(连接外网,或者自己手动导包)
如果导包成功在左下角就会出现Junit4的相关jar包
手动导包(掌握)
1,在当前模块下,右键新建一个文件夹(lib)
2,把今天资料里面的两个jar包,拷贝到lib文件夹里面
3,选中两个jar右键点击add as a lib…
4,到代码中,找到@Test,按alt + 回车,再来导入。
运行测试代码(掌握)
- 只能直接运行无参无返回值的非静态方法
- 想要运行谁,就右键点击哪个方法。如果想要运行一个类里面所有的测试方法,选择类名,有点点击即可。
Junit正确的打开方式(正确的使用方式)(掌握)
注意点:并不是直接在要测试的方法上面直接加@Test
原因:因为要测试的方法有可能是有参数的,有返回值,或者是静态的。
正确的使用方式:(掌握)
1,新建测试类
2,新建测试方法(要测试的方法名 + Test) methodTest
3,在这个方法中直接调用要测试的方法
4,在测试方法的上面写@Test
代码示例:文章来源地址https://www.toymoban.com/news/detail-714598.html
//真正用来测试的类
//测试用例(测试类)
public class JunitTest {
//在这个类里面再写无参无返回值的非静态方法
//在方法中调用想要测试的方法
@Test
public void method2Test(){
//调用要测试的方法
JunitDemo1 jd = new JunitDemo1();
jd.method2(10);
}
}
实际开发中单元测试的使用方式(掌握)
需求:测试File中的delete方法,写的是否正确(掌握)
开发中的测试原则:
不污染原数据。
代码示例:
public class JunitDemo3 {
//在实际开发中,真正完整的单元测试该怎么写?
//前提:
//以后在工作的时候,测试代码不能污染原数据。(修改,篡改)
//1.利用Before去对数据做一个初始化的动作
//2.利用Test真正的去测试方法
//3.利用After去还原数据
//需求:测试File类中的delete方法是否书写正确???
@Before
public void beforemethod() throws IOException {
//先备份
File src = new File("C:\\Users\\moon\\Desktop\\a.txt");
File dest = new File("C:\\Users\\moon\\Desktop\\copy.txt");
FileInputStream fis = new FileInputStream(src);
FileOutputStream fos = new FileOutputStream(dest);
int b;
while((b = fis.read()) != -1){
fos.write(b);
}
fos.close();
fis.close();
}
//作为一个标准的测试人员,运行完单元测试之后,不能污染原数据
//需要达到下面两个要求:
//1.得到结果
//2.a.txt还在而且其他的备份文件消失
@Test
public void method(){
File file = new File("C:\\Users\\moon\\Desktop\\a.txt");
boolean delete = file.delete();
//检查a.txt是否存在
boolean exists = file.exists();
//只有同时满足了下面所有的断言,才表示delete方法编写正确
Assert.assertEquals("delete方法出错了",delete,true);
Assert.assertEquals("delete方法出错了",exists,false);
}
@After
public void aftermethod() throws IOException {
//还要对a.txt做一个还原
File src = new File("C:\\Users\\moon\\Desktop\\copy.txt");
File dest = new File("C:\\Users\\moon\\Desktop\\a.txt");
FileInputStream fis = new FileInputStream(src);
FileOutputStream fos = new FileOutputStream(dest);
int b;
while((b = fis.read()) != -1){
fos.write(b);
}
fos.close();
fis.close();
//备份数据要删除
src.delete();
}
}
作业:
测试Properties类中的store方法是否书写正确?
开发心得:
1.Before 准备数据
2.Test 测试方法
3.After 还原
Before
准备数据
1.创建Properties的对象
2.put数据到集合当中
//只不过在下面的方法中,我们也需要用到Properties的对象,所以写完之后要挪到成员位置
Test
调用store方法,保存数据到本地文件
断言1:
判断当前文件是否存在
断言2:
文件的大小一定是大于0
断言3:
再次读取文件中的数据,判断是否跟集合中一致
结论:
如果所有的断言都通过了,表示store方法是正确的
After
把本地文件给删除
扩展点:
在单元测试中,相对路径是相对当前模块而言的。文章来源:https://www.toymoban.com/news/detail-714598.html
代码示例:
File file = new File("aweihaoshuai.txt");
file.createNewFile();
//此时是把aweihaoshuai.txt这个文件新建到模块中了。
到了这里,关于day36-单元测试的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!