基础加强Junit、反射、注解

Junit单元测试

  • 测试分类:

    1. 黑盒测试:不需要写代码,给输入值,看程序是否能够输出期望的值。
    2. 白盒测试:需要写代码的。关注程序具体的执行流程。
  • Junit使用:白盒测试

    • 步骤:

      1. 定义一个测试类(测试用例)

        • 建议:

          • 测试类名:被测试的类名Test CalculatorTest
          • 包名:xxx.xxx.xx.test cn.itcast.test
      2. 定义测试方法:可以独立运行

        • 建议:

          • 方法名:test测试的方法名 testAdd()
          • 返回值:void
          • 参数列表:空参
      3. 给方法加@Test
      4. 导入junit依赖环境
    • 判定结果:

      • 红色:失败
      • 绿色:成功
      • 一般我们会使用断言操作来处理结果

        • Assert.assertEquals(期望的结果,运算的结果);
    • 补充:

      • @Before:

        • 修饰的方法会在测试方法之前被自动执行
      • @After:

        • 修饰的方法会在测试方法执行之后自动被执行**

image.png
junit/Calculator.java
package cn.itcast.junit;

/**

  • 计算器类

*/
public class Calculator {

/**
 * 加法
 * @param a
 * @param b
 * @return
 */
public int add (int a , int b){
    //int i = 3/0;

    return a - b;
}

/**
 * 减法
 * @param a
 * @param b
 * @return
 */
public int sub (int a , int b){
    return a - b;
}

}
junit/CalculatorTest.java
package cn.itcast.junit;

public class CalculatorTest {

public static void main(String[] args) {

    //创建对象
    Calculator c = new Calculator();
    //调用
   /* int result = c.add(1, 2);
    System.out.println(result);*/

    int result = c.sub(1, 1);
    System.out.println(result);

    String str = "abc";
}

}
test/CalculatorTest.java
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
public void testAdd(){
   // System.out.println("我被执行了");
    //1.创建计算器对象
    System.out.println("testAdd...");
    Calculator c  = new Calculator();
    //2.调用add方法
    int result = c.add(1, 2);
    //System.out.println(result);

    //3.断言  我断言这个结果是3
    Assert.assertEquals(3,result);

}

@Test
public void testSub(){
    //1.创建计算器对象
    Calculator c  = new Calculator();
    int result = c.sub(1, 2);
    System.out.println("testSub....");
    Assert.assertEquals(-1,result);
}

}
image.png

Image placeholder
hjd
未设置
  73人点赞

没有讨论,发表一下自己的看法吧

推荐文章
List、Tuple、Set、Dict数据类型

List声明:[]访问列表数据:变量[n]n表示列表中数据的位置编号。修改列表数据:变量[n]=数据则可以替换原本位于n-1位置的数据。 Tuple声明:()元组与列表不同之处在于其中数据不可修改。访

【Java 反射学习】Java 反射基础

知识点 类是用来描述对象的,而反射就可以理解为是用来描述类的。 类中的属性包括: Class类本身 Package类所在的包 Field类中的属性 Method类中的方法 Constructor类中的

Go 基础巩固加强-1.0-指针

指针 指针是一个代表着某个内存地址的值。这个内存地址往往是在内存中存储的另一个变量的值的起始位置。Go语言对指针的支持介于Java语言和C/C++语言之间,它既没有想Java语言那样取消了代码对指针的

一文读懂原码、反码与补码

一、二进制二进制和十进制一样,也是一种进位计数制,但是它的基数是2。二进制表达式中0和1的位置不同,它所代表的数值也不同。例如,二进制数00001010表示十进制数10。一个二进制数具有两个基本特点:

Java 反射基础

知识点 类是用来描述对象的,而反射就可以理解为是用来描述类的。 类中的属性包括: Class类本身 Package类所在的包 Field类中的属性 Method类中的方法 Constructor类中的

事务注解(@Transactional)引起的数据覆盖故障

最近组织团队内技术培训,刘聪为分享的一个跟事务和写数据库相关的case(bug)很有代表性。用事务,要小心!一、故障现象车辆交付履约流程上两个节点(工程项目)A和B,A修改一条数据记录item(工单)

重回榜首!Facebook开源加强版BERT,全面超越XLNet

大数据文摘出品作者:宁静刚刚被拉下神坛的BERT又一次称霸了GLUE、SQuAD和RACE三个排行榜。今年六月,谷歌发布XLNet,指出并解决了BERT的缺点,在20多个指标上全面刷爆了BERT之前的

详解 PHP 反射的基本使用

PHP反射 今天我要给大家讲解的是PHP当中使用非常普遍的高级操作:反射。反射在当今几乎所有的PHP框架或者工具中都占用非常重要的角色,就比如Laravel的容器,容器对于Laravel架构来说极其重

使用Jupyter NoteBook进行IB查询和交易,以及使用算法交易示例

在搞好IB盈透接口后,试了下客户端交易,但是最终目的还是使用程序化交易。发现vnpy已经提供的Script_engine来支持JupyterNoteBook交易的,而且非常方便调用。 这里就用写了基于

IDC发布:4Q18云IT基础设施收入低于传统IT基础设施收入

根据IDC全球云IT基础设施季度跟踪报告,在2018年第四季度(4Q18),包括公有和私有云在内的云IT基础设施产品(服务器、企业存储和以太网交换机)销售收入同比增长28.0%,达到168亿美元。20

Linux/Unix 基础:什么是 Linux?

简单来讲,Linux是一个操作系统(OS)。我们都很熟悉其他操作系统,就像Microsoftwindows,AppleMacOS,iOS,Googleandroid,等等这些,linux就像它们一样,

Linux/Unix 基础:Linux 的历史

Linux的诞生 在1991年,来自芬兰Helsinki大学的学生LinusTorvalds认为市场上应该有一个比较统一的Unix版本,从此他就开始为这个项目奋斗。后来这个项目就成为了Linux操作系

零基础学测试 1 - 在 Laravel 中使用 PHPUnit

创建Laravel应用$laravelnewmind-geek-laravel-test-demo进入项目$cdmind-geek-laravel-test-demo运行自带的测试用例$vendor/

零基础学测试 2 - 进一步理解 Laravel 的测试与 PHP Unit 的关系

细心的读者可以发现,上一讲中创建的用例继承的是PHPUnit的测试基类。

集成 think-ORM 的 symfony bundle thinkorm-bundle

thinkorm-bundleSymfonyThinkOrmBundle关于thinkorm-bundle允许在你symfony使用thinkorm.所安装$composerrequireccwwwo

02.0. Go 语言基础

Go是一门类似C的编译型语言,但是它的编译速度非常快。这门语言的关键字总共也就二十五个,比英文字母还少一个,这对于我们的学习来说就简单了很多。先让我们看一眼这些关键字都长什么样: breakdefau

02.2. Go 基础

这小节我们将要介绍如何定义变量、常量、Go内置类型以及Go程序设计中的一些技巧。 定义变量 Go语言里面定义变量有多种方式。 使用var关键字是Go最基本的定义变量方式,与C语言不同的是Go把变量类型

03.0 Web 基础

学习基于Web的编程可能正是你读本书的原因。事实上,如何通过Go来编写Web应用也是我编写这本书的初衷。前面已经介绍过,Go目前已经拥有了成熟的HTTP处理包,这使得编写能做任何事情的动态Web程序易

Git教程_1.3 起步 - Git 基础

那么,简单地说,Git究竟是怎样的一个系统呢?请注意接下来的内容非常重要,若你理解了Git的思想和基本工作原理,用起来就会知其所以然,游刃有余。在开始学习Git的时候,请努力分清你对其它版本管理系统的

Git教程_2.1 Git 基础 - 获取 Git 仓库

假如你只能阅读一章来学习Git,本章就是你的不二选择。本章内容涵盖你在使用Git完成各种工作中将要使用的各种基本命令。在学习完本章之后,你应该能够配置并初始化一个仓库(repository)、开始或停

Git教程_2.2 Git 基础 - 记录每次更新到仓库

记录每次更新到仓库 现在我们手上有了一个真实项目的Git仓库,并从这个仓库中取出了所有文件的工作拷贝。接下来,对这些文件做些修改,在完成了一个阶段的目标之后,提交本次更新到仓库。 请记住,你工作目录下

Git教程_2.3 Git 基础 - 查看提交历史

在提交了若干更新,又或者克隆了某个项目之后,你也许想回顾下提交历史。完成这个任务最简单而又有效的工具是gitlog命令。 接下来的例子会用我专门用于演示的simplegit项目,运行下面的命令获取该项

Git教程_2.4 Git 基础 - 撤消操作

撤消操作 在任何一个阶段,你都有可能想要撤消某些操作。这里,我们将会学习几个撤消你所做修改的基本工具。注意,有些撤消操作是不可逆的。这是在使用Git的过程中,会因为操作失误而导致之前的工作丢失的少有的

Git教程_2.5 Git 基础 - 远程仓库的使用

远程仓库的使用 为了能在任意Git项目上协作,你需要知道如何管理自己的远程仓库。远程仓库是指托管在因特网或其他网络中的你的项目的版本库。你可以有好几个远程仓库,通常有些仓库对你只读,有些则可以读写。与

Git教程_2.6 Git 基础 - 打标签

打标签 像其他版本控制系统(VCS)一样,Git可以给历史中的某一个提交打上标签,以示重要。比较有代表性的是人们会使用这个功能来标记发布结点(v1.0等等)。在本节中,你将会学习如何列出已有的标签、如

{