package com.zy.junit.test;

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 com.zy.service.ServiceTest;

/**
 *
 * junit 3有一些比较霸道的地方,表现在: 1.单元测试类必须继承自TestCase。2.要测试的方法必须以test开头。
 * 推荐使用junit 4 
 * (1)被测试的类必须放在包里(2)返回值必须为void,而且不能有任何入参,否则运行时异常
 * @author Administrator
 *
 */
public class Junit4Test
{

// 每个测试方法执行之前都要执行一次
 @Before
 public void before()
 {
  System.out.println("before");
 }

// 每个测试方法执行之后要执行一次
 @After
 public void after()
 {
  System.out.println("after");
 }

// 只在测试类实例化执行@BeforeClass方法一次,必须声明static
 @BeforeClass
 public static void beforeClass()
 {
  System.out.println("beforeClass");
 }

// 当所有测试执行完毕之后,执行@AfterClass一次,必须声明static
 @AfterClass
 public static void afterClass()
 {
  System.out.println("afterClass");
 }

// @Test元数据中的expected属性。expected属性的值是一个异常的类型,相当于try catch,只是吃掉了此异常
 @Test(expected = ArithmeticException.class)
 public void testExpected()
 {
  int a = 10 / 0;
  System.out.println(a);
 }

// 传入了一个时间(毫秒)给测试方法,如果测试方法在制定的时间之内没有运行完,则测试也失败。
 @Test(timeout = 500)
 public void testTimeout()
 {
  try
  {
   Thread.sleep(480);
  } catch (InterruptedException e)
  {
   e.printStackTrace();
  }
  System.out.println("timeout test");
 }

// 测试方法在测试中会被忽略,用于:测试的方法还没有实现时,保证不阻碍其他方法的测试
 @Ignore
 public void testIgnore()
 {
  System.out.println(new ServiceTest().getString("hello"));
 }

// 使用@Test标注,表明这是一个测试方法
 @Test
 public void testGetString()
 {
  System.out.println(new ServiceTest().getString("hello"));
 }

@Test
 public void testGetString2()
 {
  System.out.println(new ServiceTest().getString("hello2"));
 }

}

junit 用法实例的更多相关文章

  1. php中的curl使用入门教程和常见用法实例

    摘要: [目录] php中的curl使用入门教程和常见用法实例 一.curl的优势 二.curl的简单使用步骤 三.错误处理 四.获取curl请求的具体信息 五.使用curl发送post请求 六.文件 ...

  2. 上传文件及$_FILES的用法实例

    Session变量($_SESSION):�php的SESSION函数产生的数据,都以超全局变量的方式,存放在$_SESSION变量中.1.Session简介SESSION也称为会话期,其是存储在服务 ...

  3. C++语言中cin cin.getline cin.get getline gets getchar 的用法实例

    #include <iostream> #include <string> using namespace std; //关于cin cin.getline cin.get g ...

  4. Union all的用法实例sql

    ---Union all的用法实例sqlSELECT TOP (100) PERCENT ID, bid_user_id, UserName, amount, createtime, borrowTy ...

  5. 【转】javascript入门系列演示·三种弹出对话框的用法实例

    对话框有三种 1:只是提醒,不能对脚本产生任何改变: 2:一般用于确认,返回 true 或者 false ,所以可以轻松用于 if...else...判断 3: 一个带输入的对话框,可以返回用户填入的 ...

  6. php strpos 用法实例教程

    定义和用法该strpos ( )函数返回的立场,首次出现了一系列内部其他字串. 如果字符串是没有发现,此功能返回FALSE . 语法 strpos(string,find,start) Paramet ...

  7. 【JSP】三种弹出对话框的用法实例

    对话框有三种 1:只是提醒,不能对脚本产生任何改变: 2:一般用于确认,返回 true 或者 false ,所以可以轻松用于 if...else...判断 3: 一个带输入的对话框,可以返回用户填入的 ...

  8. python多线程threading.Lock锁用法实例

    本文实例讲述了python多线程threading.Lock锁的用法实例,分享给大家供大家参考.具体分析如下: python的锁可以独立提取出来 mutex = threading.Lock() #锁 ...

  9. jQuery中on()方法用法实例详解

    这篇文章主要介绍了jQuery中on()方法用法,实例分析了on()方法的功能及各种常见的使用技巧,并对比分析了与bind(),live(),delegate()等方法的区别,需要的朋友可以参考下 本 ...

随机推荐

  1. javascrip与C#高级语言的程序设计

    javascript特点:解释型的.基于对象的脚本语言一.简单性:变量类型是采用弱类型,并未使用严格的数据类型.二.动态性:基于事件驱动三.跨平台性:依赖于浏览器本身,与操作环境无关.四.安全性:不允 ...

  2. javascript中this的妙用

    this是javascript语言的一个关键字,它代表函数运行时,自动生成的一个内部对象,只能在函数内部使用. this总是指向对象,并且为调用函数的那个对象: //调用普通函数 function f ...

  3. ZH奶酪:哈工大LTP云平台标记含义及性能

    从官网搬过来的 囧rz 哈工大讯飞语言云 由哈工大 和科大讯飞 联合研发的中文自然语言处理云服务平台.结合了哈工大“语言技术平台——LTP” 高效.精准的自然语言处理核心技术和讯飞公司在全国性大规模云 ...

  4. Azure Paas SQL 修改用户名密码的相关问题

    现总结如下,供您参考: 1)  如何单独修改每个数据库的密码? 在portal中,我们提供了一个最高权限的,可管理服务器下所有数据库的服务器用户 跟密码,但在实际使用中,由于权限过大,会有潜在的安全隐 ...

  5. 一致性哈希算法——PHP实现代码

    <?php /** * Flexihash - A simple consistent hashing implementation for PHP. * * The MIT License * ...

  6. Oracle---->Join

    最近使用ODI,其中有一个JOIN组件涉及到常见的几种JOIN类型,因此整理了下交叉连接和自然连接的区别. 一.概述 两个表的连接,是通过将一个表中的一列或者多列同另一个表中的列链接而建立起来的.用来 ...

  7. CDB和PDB的创建、连接、启动、关闭

    一.CDB和PDB基本管理 基本概念: Multitenant Environment:多租户环境 CDB(Container Database):数据库容器 PD(Pluggable Databas ...

  8. Multitenant Architecture---PDB与CDB

    一.多租户框架 多租户技术(英语:multi-tenancy technology)或称多重租赁技术,是一种软件架构技术,它是在探讨与实现如何于多用户的环境下共用相同的系统或程序组件,并且仍可确保各用 ...

  9. 【Linux】函数与参数

    函数的定义 函数的定义包括function命令.函数名.开/闭括号包括以及包含在一对花括号中的函数体. (1) 函数定义 function fname() { Statements; } 或者 fna ...

  10. Knockout学习之监控属性

    监控属性 Knockout包含以下三个核心特性: 1.监控属性和依赖跟踪 2.显式绑定 3.模板 下面我们将学习这三点中的第一点,在这之前我们先研究下MVVM模式和视图模型的概念. MVVM和视图模型 ...