【黑马Javaweb】1.1Junit单元测试
黑马第一天学习
今日内容
1.1Junit单元测试
1.2.反射
1.3.注解
Junit单元测试:
测试分类:
1.黑盒测试:不需要写代码,给输入值,看程序是否能够输出期望的值
(非常简单,不用关注具体逻辑)
2.白盒测试:需要写代码的。关注程序具体的执行流程。(junit是白盒的一种)
3.两种测试的主要区别
都要关注输出是否符合期望,主要区别就是白盒测试你需要去关注程序的流程,白盒测试需要写代码,黑盒测试只需要点点点,现在社会上的测试人员大多都是黑盒测试,希望大家能成为白盒测试工程师。




在用这个计算器类之前,要测试一下。
缺点,很不方便:1.测试类要和被测试类放一起 2.每次测试一个方法,都要把其他的方法注释掉,以免产生干扰
Junit使用:白盒测试
*步骤:1,定义一个测试类(测试用例)
*建议:
*测试类名:被测试的类名 +Test 如CalculatorTest
*包名:xxx.xxx.xx.test 如cn.itcast.test
2,定义测试方法:可以独立运行
*建议:
*方法名:test测试的方法名 testAdd()
*建议返回值:void
*建议参数列表:空参
完全的独立运行,不用返回值,不用传参
3.给方法加上@Test
4.导入Junit依赖
* 判定结果:
红色:失败
绿色:成功
* 一般我们会使用断言操作来处理结果
Assert.assertequals(期望结果,运算结果result);
最基本的测试类
程序测试成功

使用Junit一般不看打印结果,而是看红色(错误)还是绿色(成功)
- 一般不用输出,而是采用断言的方式
Assert有很多函数,
Assert.ossertEquals(3,result);//断言result为3

白窗模糊界面是黑马网课界面
黑窗是我本人的界面。然后改了一下皮肤,前面的看不清
再测试一下减法。建议先看黑马网课,看一会,敲一会,因为她有很多快捷的敲代码方法
第一节课结束,展示文件目录和代码

Calculator测试类
package cn.itcast.test;
import cn.itcast.junit.Calculator;
import org.junit.Assert;
import org.junit.Test;
public class CalculatorTest {
//老版本,用 main 函数来测试方法
// public static void main(String[] args){
//
// //创建对象
// Calculator calculator = new Calculator();
//
// //调用
// /*
// int result = calculator.add(1, 2);
// System.out.println(result);//3,正确
// */
// /*
// int result = calculator.sub(1, 1);
// System.out.println(result);//0,正确
// */
// }
/**
* 测试 add 方法
*/
@Test
//Alt + Enter 添加 Junit 依赖
public void testAdd(){
//System.out.println("我被执行了"); //我被执行了
//1.创建计算器对象
Calculator calculator = new Calculator();
//调用add方法
int result = calculator.add(1, 2);
//System.out.println(result); // 3
//3.断言,我断言整个结果为3
Assert.assertEquals(3, result);
}
@Test
public void testSub(){
//1.创建计算器对象
Calculator calculator = new Calculator();
int result = calculator.sub(1, 2);
Assert.assertEquals(-1, result);
}
}
package cn.itcast.junit;
//psvm这里不用写主函数
public class Calculator {
/**
* 加法
* @param a
* @param b
* @return
*/
//当你把方法写好后,移到方法的上面,然后敲入/**,一回车就出来了
public int add ( int a , int b ){
//return a + b ;
//故意写错
return a + b ;
}
/**
* 减法
* @param a
* @param b
* @return
*/
public int sub ( int a , int b ){
return a - b ;
}
}
- 补充:
@Before:修饰的方法会在测试方法之前被自动执行
@After:修饰的方法会在测试方法执行之后自动执行。
package cn.itcast.test;
import cn.itcast.junit.Calculator;
import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
public class CalculatorTest {
/**
* 初始化方法:
* 用于资源申请,所有测试方法在执行之前都会先执行该方法
*/
@Before
public void init(){
System.out.println("init...");
}
/**
* 释放资源方法:
* 在所有测试方法都执行完以后,都会自动执行该方法
*/
@After
public void close(){
System.out.println("close...");
}
/**
* 测试 add 方法
*/
@Test
//Alt + Enter 添加 Junit 依赖
public void testAdd(){
//System.out.println("我被执行了"); //我被执行了
System.out.println("testAdd...");
//1.创建计算器对象
Calculator calculator = new Calculator();
//调用add方法
int result = calculator.add(1, 2);
//System.out.println(result); // 3
//3.断言,我断言整个结果为3
Assert.assertEquals(3, result);
}
@Test
public void testSub(){
//1.创建计算器对象
Calculator calculator = new Calculator();
int result = calculator.sub(1, 2);
System.out.println("testSub...");
Assert.assertEquals(-1, result);
}
}
【黑马Javaweb】1.1Junit单元测试的更多相关文章
- 【黑马JavaWeb】.1.2反射机制
文章目录 反射:框架设计的灵魂 获取Class类对象的方式 学习视频:https://www.bilibili.com/video/av47886776?p=10 本来一万行的代码,使用框架以后简化到 ...
- Android初级教程理论知识(第三章测试&数据存储&界面展现)
首先介绍单元测试,我在javaweb部分有详细介绍单元测试框架的一篇文章. 可以先看在javaweb中的单元测试详解篇http://blog.csdn.net/qq_32059827/article/ ...
- java秀发入门到优雅秃头路线导航【教学视频+博客+书籍整理】
目录 一.Java基础 二.关于JavaWeb基础 三.关于数据库 四.关于ssm框架 五.关于数据结构与算法 六.关于开发工具idea 七.关于项目管理工具Mawen.Git.SVN.Gradle. ...
- java入门到秃路线导航,元芳你怎么看?【教学视频+博客+书籍整理】
目录 一.Java基础 二.关于JavaWeb基础 三.关于数据库 四.关于ssm框架 五.关于数据结构与算法 六.关于开发工具idea 七.关于项目管理工具Mawen.Git.SVN.Gradle. ...
- 大数据-将MP3保存到数据库并读取出来《黑马程序员_超全面的JavaWeb视频教程vedio》day17
黑马程序员_超全面的JavaWeb视频教程vedio\黑马程序员_超全面的JavaWeb教程-源码笔记\JavaWeb视频教程_day17-资料源码\day17_code\day17_1\ 大数据 目 ...
- javaWeb开发小工具---MailUtils及其单元测试
本次介绍的是,在javaWeb开发中,我们不免会遇到发送邮件的需求,比如:用户注册账号,需要激活登录,以及服务器定期向会员发送礼品信息等.所以参考有关资料,写了这个MailUtils工具类. 1.Ma ...
- 廖雪峰Java8JUnit单元测试-1JUnit简介-1JUnit测试
测试驱动开发(Test Driver Development) 1.使用main()方法测试的缺点: 只能有1个main()方法,不能把测试代码分离 没有打印出测试结果和期望结果,例如expected ...
- EL表达式 EL函数 自定义el函数 《黑马程序员_超全面的JavaWeb视频教程vedio》
\JavaWeb视频教程_day12_自定义标签JSTL标签库,java web之设计模式\day12_avi\12.EL入门.avi; EL表达式 1. EL是JSP内置的表达式语言! * jsp2 ...
- 黑马程序员_超全面的JavaWeb视频教程vedio--.ppt,.pptx,.doc,.txt,.docx列表
\JavaWeb视频教程_day1-资料源码\day01-html目录.txt;\JavaWeb视频教程_day1-资料源码\PPT\HTML.ppt;\JavaWeb视频教程_day1-资料源码\资 ...
随机推荐
- VSCode主题自定义(附详细注释及本人主题分享)
先来一张本人自己配置的主题截图,喜欢的拿去用: 下面说说怎么自定义主题: 1. Ctrl + ,(Ctrl键 + 逗号键):打开设置,也可以依次点击编辑器左上角 => 文件 => ...
- 电脑连手机调试app
小米6也真是坑,打开开发者模式的方式堪称一流绝密!!! 设置 --> 我的设备 --> 全部参数 --> MIUI版本 --> 连续点击七次,直到提示已经处于开发者模式为止 然 ...
- ios上滚动不顺畅css处理方式
overflow-y: auto; -webkit-overflow-scrolling: touch;
- 织梦dedecms自定义功能函数(1):调用body中的图片(可多张)
前言 岛主会整理或者开发一系列常用功能函数.所有自定义功能函数都是放在\include\extend.func.php文件里. 这次织梦自定义功能函数功能为:独立提取 body字段中(可以是自定义字段 ...
- nginx反向代理局域网访问外网
.配置内网hosts vim /etc/hosts 添加 host1(能连外网的服务器ip) central.maven.org 2.在host1 服务器上nginx配置 server { ...
- 【转】tar命令详解
原文:http://www.cnblogs.com/qq78292959/archive/2011/07/06/2099427.html tar -c: 建立压缩档案-x:解压-t:查看内容-r:向压 ...
- 《Linux就该这么学》day3
ps:原谅我的书法出自鲁迅的<野草> <Linux就该这么学>书本介绍: 本书是由全国多名红帽架构师(RHCA)基于最新Linux系统共同编写的高质量Linux技术自学教程,极 ...
- STM32定义变量位于指定的SRAM地址
1.定义一个数组比如value[],让数组的首地址指向特定的SRAM地址,比如0x20000100 1)__align(8) uint8_t value[20] __attribute__((at(0 ...
- 解决docker容器的窗口大小问题
解决docker容器的窗口大小问题 最近哥们在是使用docker时,发现有些容器内部窗口大小有问题. 如下午所示,vi窗口只占据左上角一部分.正常情况下vi应该铺满整个窗口才对呀. 所以哥们找到了解决 ...
- 如何设置zencart买满多少免运费?
有时候会希望客户买满多少免运费,当订单总金额大于免运费的订单金额设值时,免运费.下面介绍一下zencart设置买满多少免运费: 1.进入后台–模块管理(Modules)–总额计算(Order Tota ...