JUnit学习笔记-入门介绍

新建Java项目,目录结构如图

T.java

package com.umgsai.junit4;

public class T {

	public int add(int x, int y) {
		return x + y;
	}

	public static void main(String[] args) {
		System.out.println(new T().add(2, 5));
		//单元测试是写一个类要给别人用,测试会不会有bug
		//不用main方法来测试原因:不能一起运行,大多数情况下需要人为观察输出确定是否正确
		//阶段:需求  分析 开发 测试 部署  维护升级(成本最高。占60%左右)
	}
}

TTest.java

package com.umgsai.junit4.test;

//静态引入,JDK5之后的语法
import static org.junit.Assert.*;

import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Ignore;
import org.junit.Test;

import static org.hamcrest.Matchers.*;

import com.umgsai.junit4.T;
public class TTest {

	@BeforeClass//测试类所有方法开始之前执行。比如提前建立数据库的连接。
	public static void BeforeClass(){
		System.out.println("BeforeClass...");
	}

	@AfterClass//测试类所有方法结束之后执行。比如关闭数据库的连接。
	public static void AfterClass(){
		System.out.println("AfterClass...");
	}

	@Before//测试方法开始之前执行
	public void before() {
		System.out.println("before...");
	}

	@Test
	public void testAdd() {
		// 静态引入之后可以直接使用下面的方法
		// fail("Not yet implemented");
		int z = new T().add(5, 3);
		assertEquals(8, z);
//		 Keep the bar green to keep the code clean.
//		assertTrue(z > 3);
//		assertTrue("z too small", z > 10);//加上错误消息
//		assertThat(z, is(8));
//		assertThat(z, allOf(greaterThan(1), lessThan(10)));//allOf中的条件必须都满足
//		assertThat(z, anyOf(greaterThan(56), lessThanOrEqualTo(11)));//满足其中一个条件即可
//		assertThat(z, anything());//

//		assertThat("umgsai", is("umgsai"));
//		assertThat("umgsai", not("umgsai1"));
//		assertThat("umgsai", containsString("sa"));
//		assertThat("umgsai", endsWith("sai"));
//		assertThat("umgsai", startsWith("umg"));
//		assertThat("umgsai", equalTo("umgsai11"));
//		assertThat("umgsai", equalToIgnoringCase("Umgsai"));
//		assertThat("umgsai", equalToIgnoringWhiteSpace("   umgsai"));

//		assertThat(3.2, closeTo(3.0, 0.2));//区间(2.8, 3.2)
//		assertThat(3.2, greaterThan(3.0));
//		assertThat(3.2, lessThan(12.0));
//		assertThat(5.0, greaterThanOrEqualTo(5.0));
//		assertThat(5.0, lessThanOrEqualTo(5.0));

//		assertThat(map, hasEntry("key", "value"));
//		assertThat(iterable, hasItem("item"));
//		assertThat(map, hasKey("key"));
//		assertThat(map, hasValue("value"));

		//Error是程序出错
		//Failure是测试失败
	}

	//@Ignore//不执行此测试方法
	@Test(expected=java.lang.ArithmeticException.class, timeout=100)//期望抛异常.并且在100毫秒之内结束
	public void testDivide() {
		int z = new T().divide(8, 0);
		assertThat(z, is(4));
	}

	@After//测试方法结束之后执行
	public void after() {
		System.out.println("after...");
	}

}

同时测试多个类。在某个包上右键选择Run as ->Run confugrations->Run all tests in the selected project....



时间: 2024-10-10 06:18:17

JUnit学习笔记-入门介绍的相关文章

Vue学习笔记入门篇——组件的内容分发(slot)

本文为转载,原文:Vue学习笔记入门篇--组件的内容分发(slot) 介绍 为了让组件可以组合,我们需要一种方式来混合父组件的内容与子组件自己的模板.这个过程被称为 内容分发 (或 "transclusion" 如果你熟悉 Angular).Vue.js 实现了一个内容分发 API,使用特殊的 'slot' 元素作为原始内容的插槽. 编译作用域 在深入内容分发 API 之前,我们先明确内容在哪个作用域里编译.假定模板为: <child-component> {{ messa

Vue学习笔记入门篇——组件的使用

本文为转载,原文:Vue学习笔记入门篇--组件的使用 组件定义 组件 (Component) 是 Vue.js 最强大的功能之一.组件可以扩展 HTML 元素,封装可重用的代码.在较高层面上,组件是自定义元素,Vue.js 的编译器为它添加特殊功能.在有些情况下,组件也可以是原生 HTML 元素的形式,以 is 特性扩展. 组件使用 注册 注册一个全局组件,你可以使用 Vue.component(tagName, options).组件在注册之后,便可以在父实例的模块中以自定义元素 的形式使用.

Vue学习笔记入门篇——组件的通讯

本文为转载,原文:Vue学习笔记入门篇--组件的通讯 组件意味着协同工作,通常父子组件会是这样的关系:组件 A 在它的模版中使用了组件 B.它们之间必然需要相互通信:父组件要给子组件传递数据,子组件需要将它内部发生的事情告知给父组件.然而,在一个良好定义的接口中尽可能将父子组件解耦是很重要的.这保证了每个组件可以在相对隔离的环境中书写和理解,也大幅提高了组件的可维护性和可重用性.在 Vue 中,父子组件的关系可以总结为 props down, events up.父组件通过 props 向下传递

PHP学习笔记——入门篇(1)——语法&变量

基础 PHP 语法 PHP 脚本可放置于文档中的任何位置. PHP 脚本以 <?php 开头,以 ?> 结尾: PHP 文件通常包含 HTML 标签以及一些 PHP 脚本代码. 注释:PHP 语句以分号结尾(;).PHP 代码块的关闭标签也会自动表明分号(因此在 PHP 代码块的最后一行不必使用分号). PHP 支持三种注释: //单行注释 #单行注释 /*多行注释*/ PHP 大小写敏感区分: 在 PHP 中,所有用户定义的函数.类和关键词(例如 if.else.echo 等等)都对大小写不

LESS学习笔记 —— 入门

今天在慕课网上完成了LESS的基础学习,下面是我的学习笔记. 总共有三个文件:index.html.main.less.mian.css,其中 mian.css 是 main.less 经过Koala编译之后自动生成的. 下面是代码: index.html 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 <!DOCTYPE html> <html

Junit学习笔记(一):Junit的入门使用

junit4和junit3的区别  JUnit4中所有的测试用例采用@Annotation标注,JUnit3的通过类继承和特定方法名实现,Junit4比Junit3更灵活. JUnit的生命周期 @BeforeClass.@Before.@Test.@After.@AfterClass <<Before Class>> <<Person Constructor>> <<Before>> Test Method 1. <<A

ADO.NET 学习笔记 入门教程

本文转载自:http://www.youarebug.com/forum.php?mod=viewthread&tid=57&page=1&extra=#pid63 这是本人在学习ADP.NET过程中所作的笔记,可作为ADO.NET入门或者复习的教程. 连接字符串: DataSource=localhost; AttchDBFilename=|DataDirectory|\Database1.mdf; InitialCatalog=UserDate; Integrated Secu

linux学习笔记入门之环境变量和文件查找

环境变量与文件查找 一.环境变量 1.变量 要解释环境变量,得先明白变量是什么,准确的说应该是 Shell 变量,所谓变量就是计算机中用于记录一个值(不一定是数值,也可以是字符或字符串)的符号,而这些符号将用于不同的运算处理中.通常变量与值是一对一的关系,可以通过表达式读取它的值赋值给其它变量,也可以直接指定数值赋值给任意变量.为了便于运算和处理,大部分的编程语言会区分变量的类型,用于分别记录数值.字符或者字符串等等数据类型.Shell 中的变量也基本如此,有不同类型(但不用专门指定类型名),可

IBatis .NET 开发学习笔记&mdash;&mdash;简要介绍

1.概览 iBATIS DataMapper这个框架可以让我们使用JAVA或者.NET应用程序访问数据库变得非常容易,iBATIS和Hibernate.NHibernate或者Entity Framework(EF)不同的是,iBATIS要求对SQL或者存储过程有挺不错的造诣,因为需要自己去优化查询和管理sql,而Hibernate不需要你写一句SQL来实现映射,就好比如果你觉得你自己SQL不错,iBATIS是个不错的选择,因为他能够带给你足够的代码扩展,Hibernate提供了很多基础类库,如