小白学junit4(1)——注解

上一篇 / 下一篇  2013-01-07 09:48:33 / 个人分类:junit

背景:以前上课学习Java,了解相当简单的java语法,没有试过个人使用java写代码。目前工作测试,近期工作需要编写白盒测试用例。


java名词解释:
Java注解:
java注解就是java的元数据
 注解是以‘@注解名’在代码中存在的,根据注解参数的个数,我们可以将注解分为:标记注解、单值注解、完整注解三类。它们都不会直接影响到程序的语义,只是作为注解(标识)存在,我们可以通过反射机制编程实现对这些元数据(用来描述数据的数据)的访问。常见的:@Override

注解的作用:

编写文档:通过代码里标识的元数据生成文档。   
代码分析:通过代码里标识的元数据对代码进行分析。   
编译检查:通过代码里标识的元数据让编译器能实现基本的编译检查


Java反射机制:Reflection 是 Java 程序开发语言的特征之一,它允许运行中的 Java 程序对自身进行检查,或者说“自审”,并能直接操作程序的内部属性。

 

Junit4.X 的注解


@Before:初始化方法,在任何一个测试执行之前必须执行的代码;
@After:释放资源,在任何测试执行之后需要进行的收尾工作。在每个测试方法执行之后执行一次,该annotation只能修饰public void 方法;
@Test:测试方法,表明这是一个测试方法。在Junit中将会自动被执行。该annotation只你呢个修饰public void 方法。对于方法的声明也有如下要求:名字可以随便取,没有任何限制,但是返回值必须为void,而且不能有任何参数。如果违反这些规定,会在运行时抛出一 个异常。至于方法内该写些什么,那就要看你需要测试些什么了;在这里可以测试期望异常和超时时间,如 @Test(timeout = 100):我们给测试函数设定一个执行时间,超过了这个时间(100毫秒),它们就会被系统强行终止,并且系统还会向你汇报该函数结束的原因是因为超时, 这样你就可以发现这些Bug了。
@Ignore:忽略的测试方法,标注的含义就是“某些方法尚未完成,暂不参与此次测试”;这样的话测试结果就会提示你有几个测试被忽略,而不是失败。一旦你完成了相应函数,只需要把@Ignore标注删去,就可以进行正常的测试。
@BeforeClass:针对所有测试,只执行一次,且必须为public static void;
@AfterClass:针对所有测试,将会在所有测试方法执行结束后执行一次,且必须为public static void;


所以一个Junit 4 的单元测试用例执行顺序为:@BeforeClass –> @Before –> @Test –> @After –> @AfterClass;每一个测试方法的调用顺序为:@Before –> @Test –> @After。

例子:
可参考百度百科 junit关于junit4.X版本一段
@BeforeClass
  // 在所有方法执行之前执行
  public static void globalInit() {
  System.out.println("init all method...\r\n");
  }
  @AfterClass
  // 在所有方法执行之后执行
  public static void globalDestory() {
  System.out.println("destory all method...");
  }
  @Before
  // 在每个测试方法之前执行
  public void setUp() {
  System.out.println("start setUp method");
  myNumber = new MyNumber();
  }
  @After
  // 在每个测试方法之后执行
  public void tearDown() {
  System.out.println("end tearDown method\r\n");
  }
  @Test(timeout=600)// 设置限定测试方法的运行时间 如果超出则返回错误
  public void testAdd() {
  System.out.println("testAdd method");
  int result = myNumber.add(2, 3);
  assertEquals(5, result);
  }

TAG:

 

评分:0

我来说两句

Open Toolbar