zoukankan      html  css  js  c++  java
  • 解释JUnit中@BeforeClass和@AfterClass标注的方法必须是static的,而在TestNg不必

    在JUnit中@BeforeClass和@AfterClass标注的方法必须是static的;但是在TestNg中却没有这样的限制,这是为什么呢。

    其实和他们两的运行机制有关。

    在junit中:

    每运行一个@Test方法,就会为该测试类新建一个新的实例。(所以@BeforeClass和@AfterClass必须是static的,因为运行他们的时候,测试类还没有实例化呢。)

    有没有发现这有助于提高测试方法之间的独立性,因为每个@Test执行的时候,都新建了一个实例,这样的话,可以避免测试方法之间重用各个@Test方法里面的变量值。

    举例:

     

    测试结果:

     

    而在TestNg中@BeforeClass和@AfterClass方法就没严格要求要是static。

    因为运行testNg的时候,对一个类只会实例化一次。

    举例:

    结果:

  • 相关阅读:
    在c#中用指针操作图片像素点
    获取exe目录
    MySQL数据库之安装
    简介、变量、常数、if、基础数据类型、注释、input()
    day 1 预习
    Typora基础
    内存流
    System.in流
    Java IO 操作
    字节流、字符流
  • 原文地址:https://www.cnblogs.com/weiweiyao/p/4280129.html
Copyright © 2011-2022 走看看