在Junit4中还有的测试注解有:  @BeforeClass ,@Before,@Test,@After,@AfterClass

1、其中:@BeforeClass,@AfterClass是Junit4中新添加进去的

2、如果Run as --->Junit Test,运行含有@Test注释的方法是,那么所有注解方法都将被执行,所含的执行顺序是:

@BeforeClass ,@Before,@Test,@After,@AfterClass

3、在JUnit4中,如果测试类继承了TestCase类,那么所有的Annotation都不会起作用。

4、案例:

package cn.edu.hactcm.testjunit;

import java.util.UUID;

import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
/**
 * author    : toto 11111111@qq.com
 * CFMS    :Computer files management system 
 * version  :1.0 2013-2-19 下午01:26:04
 *
 * 此类用于测试单元测试中的几个方法
 */
public class TestJunit {
 private String flag;
 
 /**
  * 在本类加载前执行,注意的是有关键字:static
  */
 @BeforeClass
 public static void testBeforeClass() {
  System.out.println("public static void testBeforeClass()");
 }

/**
  * 在执行目标测试方法testTest()前执行
  */
 @Before
 public void testBefore() {
  System.out.println("-------------------------------------");
  System.out.println("public void testBefore()");
  flag = UUID.randomUUID().toString();
  System.out.println("-------------------------------------");
 }
 
 /**
  * 目标测试方法testTest()
  */
 @Test
 public void testTest() {
  System.out.println("public void testTest()");
  System.out.println(flag);
  flag = null;
 }
 
 /**
  * 目标测试方法testTest2()
  */
 @Test
 public void testTest2() {
  System.out.println("public void testTest2()");
  System.out.println(flag);
  flag = null;
 }

/**
  * 在执行目标测试方法testTest()执行
  */
 @After
 public void testAfter() {
  System.out.println("-------------------------------------");
  System.out.println("public void testAfter()");
  System.out.println(flag);
  System.out.println("-------------------------------------");
 }
 
 /**
  * 在本类加载后执行,注意的是有关键字:static
  */
 @AfterClass
 public static void testAfterClass() {
  System.out.println("public static void testAfterClass()");
 }
}

只执行testTest()方法后的结果为:

public static void testBeforeClass()
-------------------------------------
public void testBefore()
-------------------------------------
public void testTest()
993ea4ea-3626-4caa-9976-07203a8b7475
-------------------------------------
public void testAfter()
null
-------------------------------------
public static void testAfterClass()

第二种写单元测试的方法是:

package cn.com.css.misps.composite.dao.impl;

import static org.junit.Assert.fail;

import java.util.List;

import javax.annotation.Resource;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

import cn.com.css.common.util.DateUtil;
import cn.com.css.misps.composite.dao.IIndexDao;
import cn.com.css.misps.domain.TTaskState;

/**
 * @brief IndexDaoImplTest.java IndexDaoImpl的测试类
 * @attention
 * @author 涂作权
 * @date 2014-1-26
 * @note begin modify by null
 */
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations="classpath:applicationContext.xml")
public class IndexDaoImplTest {
 @Resource(name="indexDao")
 private IIndexDao indexDao;

@Test
 public void testQueryLatestIssueProduct() {
  List<TTaskState> taskStates =
indexDao.queryLatestIssueProduct(DateUtil.getStartTimeOfDay(),
DateUtil.getStartTimeOfDay(), 10);
  for (TTaskState taskState : taskStates) {
   System.out.println(taskState.getCode());
  }
 }

/**
  * Test method for {@link cn.com.css.misps.composite.dao.impl.IndexDaoImpl#queryProductInfoByCodeAndLastMakeTime(java.lang.String, java.util.Date)}.
  */
 @Test
 public void testQueryProductInfoByCodeAndLastMakeTime() {
  fail("Not yet implemented");
 }

/**
  * Test method for {@link cn.com.css.misps.composite.dao.impl.IndexDaoImpl#queryTMispsProductPage(int)}.
  */
 @Test
 public void testQueryTMispsProductPage() {
  fail("Not yet implemented");
 }

/**
  * Test method for {@link cn.com.css.misps.composite.dao.impl.IndexDaoImpl#queryFirstTMispsProductPage(int)}.
  */
 @Test
 public void testQueryFirstTMispsProductPage() {
  fail("Not yet implemented");
 }

}

上面的方式可以用于SSH项目中

Java单元测试:@BeforeClass,@Before,@Test,@After,@AfterClass中的问题详解的更多相关文章

  1. Java中单元测试中:@BeforeClass,@Before,@Test,@After,@AfterClass中的问题详解

    在Junit4中还有的测试注解有:  @BeforeClass ,@Before,@Test,@After,@AfterClass 1.其中:@BeforeClass,@AfterClass是Juni ...

  2. Java的各类型数据在内存中分配情况详解

    1.      有这样一种说法,如今争锋于IT战场的两大势力,MS一族偏重于底层实现,Java一族偏重于系统架构.说法根据无从考证,但从两大势力各自的社区力量和图书市场已有佳作不难看出,此说法不虚,但 ...

  3. “全栈2019”Java第八十四章:接口中嵌套接口详解

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

  4. java中的注解详解和自定义注解

    一.java中的注解详解 1.什么是注解 用一个词就可以描述注解,那就是元数据,即一种描述数据的数据.所以,可以说注解就是源代码的元数据.比如,下面这段代码: @Override public Str ...

  5. Java中dimension类详解

    Java中dimension类详解 https://blog.csdn.net/hrw1234567890/article/details/81217788

  6. [转载]java中import作用详解

    [转载]java中import作用详解 来源: https://blog.csdn.net/qq_25665807/article/details/74747868 这篇博客讲的真的很清楚,这个作者很 ...

  7. Java中日志组件详解

    avalon-logkit Java中日志组件详解 lanhy 发布于 2020-9-1 11:35 224浏览 0收藏 作为开发人员,我相信您对日志记录工具并不陌生. Java还具有功能强大且功能强 ...

  8. 《手把手教你》系列基础篇(九十三)-java+ selenium自动化测试-框架设计基础-POM设计模式实现-上篇(详解教程)

    1.简介 上一篇介绍了POM的基础理论知识和非POM方式写脚本,这篇介绍利用页面工厂类(page factory)去实现POM,通过查看PageFactory类,我们可以知道它是一个初始化一个页面实例 ...

  9. 《手把手教你》系列基础篇(九十四)-java+ selenium自动化测试-框架设计基础-POM设计模式实现-下篇(详解教程)

    1.简介 上一篇宏哥用PageFactory实现了POM,宏哥再介绍一下如果不用PageFactory如何实现POM. 2.项目实战 在这里宏哥以百度首页登录的例子,如果用POM实现,在测试脚本中实际 ...

随机推荐

  1. [RxJS] Completing a Stream with TakeWhile

    Subscribe can take three params: subscribe( (x)=> console.log(x), err=> console.log(err), ()=& ...

  2. HDU 3265 Posters(线段树)

    HDU 3265 Posters pid=3265" target="_blank" style="">题目链接 题意:给定一些矩形海报.中间有 ...

  3. c#转码解码

    ///反转码                          mdata[k].MNAME = unescape(mdata[k].MNAME);程家楠 13:51:00 Microsoft.JSc ...

  4. 安卓状态栏通知Status Bar Notification

    安卓系统通知用户三种方式: 1.Toast Notification 2.Dialog Notification 3.Status Bar Notification Status Bar Notifi ...

  5. ORACLE SQL单行函数(一)【weber出品必属精品】

    1.SUBSTR:求父串中的子串 SUBSTR('HelloWorld',1,5) 1:代表子串的起始位置,如果为正,正数,如果为负,倒数 5:代表字串的终止位置,只能向右数,可以省略,如果省略就是数 ...

  6. silverlight visifire控件图表制作——silverlight 后台方法ControlChart.xaml.cs

    一.构造方法ControlChart 1.前台页面控件赋值 //时间下拉框赋值,下拉框赋选定值                for (int ii = DateTime.Today.Year; ii ...

  7. HEAP[xxx.exe]:Invalid Address specified to RtlValidateHeap 错误的解决方法总结

    一.情况 抽象出问题是这样的: class DLL_API1 A { func() { vector vec; B b; b.func(vec); return TRUE; } } 其中B是另一个导出 ...

  8. [FML]学习笔记一Cross-validation交叉验证

    在实际的工程中,有时labeled data的数量不足以留出validation sample(验证样本)否则会导致training sample(训练样本)的数量太少.为了解决这个问题,我们引入一种 ...

  9. python安装——Windows平台

    刚刚申请博客,第一次写随笔,记录下自己最近的学习情况,希望自己能够不断的学习,不断的丰富自己~ 最近刚开始学python,记录一下,希望大家相互学习,批评指正~ 1.下载python:https:// ...

  10. Jasper_plug_install

    1.open eclipse -> Help -> Eclipse Marketplace. 2.at new window, find jasper, will find Jaspers ...