Junit 中after与afterclass 区别

来源:互联网 发布:电脑软件助手 编辑:程序博客网 时间:2024/06/03 16:52

为了测试方便,我们需要进行单元测试,需要用到Junit。

public person{

    public void sayHello()

    {

        System.out.println("hello  world!");

    }

    public void eat()

   {

       System.out.println("eat  food !");

   }

}

方式一:

pulic class test{

    @Test

    public void testSayHello()

    {

         person  p = new person();

         p.sayHello();

    }


    @Test

    public void testEat()

    {

      person p = new person();

       p.eat();

    }

}


方式二:

pulic class test{

  person p = null;  

@Before

  public void before()

   {

     p = new person();

    System.out.println("测试之前。。。");

   }

    @Test

    public void testSayHello()

    {

         person  p = new person();

         p.sayHello();

    }


    @Test

    public void testEat()

    {

      person p = new person();

       p.eat();

    }

@After

  public  void  after()

  {

     p = null;

    System.out.println("测试之后..........");

  }

}

结果是:不论执行testEat()还是testSayHello()都会执行先执行before(),最后在执行after()函数。如果测试整个test类,就会显示执行了两次before(),after() 函数。

可以在before()函数中初始化一些参数,在after()中释放资源。

方式三:

pulic class test{

  person p = null;  

@BeforeClass

  public static  void before()

   {

     p = new person();

    System.out.println("测试之前。。。");

   }

    @Test

    public void testSayHello()

    {

         person  p = new person();

         p.sayHello();

    }


    @Test

    public void testEat()

    {

      person p = new person();

       p.eat();

    }

@AfterClass

  public static  void  after()

  {

     p = null;

    System.out.println("测试之后..........");

  }

}


@Before:初始化方法   对于每一个测试方法都要执行一次(注意与BeforeClass区别,后者是对于所有方法执行一次
@After:释放资源  对于每一个测试方法都要执行一次(注意与AfterClass区别,后者是对于所有方法执行一次
@Test:测试方法,在这里可以测试期望异常和超时时间 
@Test(expected=ArithmeticException.class)检查被测方法是否抛出ArithmeticException异常 
@Ignore:忽略的测试方法 
@BeforeClass:针对所有测试,只执行一次,且必须为static void 
@AfterClass:针对所有测试,只执行一次,且必须为static void 
一个JUnit4的单元测试用例执行顺序为: 
@BeforeClass -> @Before -> @Test -> @After -> @AfterClass; 
每一个测试方法的调用顺序为: 

@Before -> @Test -> @After; 







阅读全文
0 0
原创粉丝点击