zoukankan      html  css  js  c++  java
  • Junit

    1.Junit是干嘛的?

    首先Junit是一个单元测试框架,它能让我们快速的完成单元测试。通常我们写完代码想要测试这段代码的正确性,那么我们必须新建一个类,写一个main方法,然后编写测试代码。如果要测试的代码很多,这会增加测试的复杂性。而Junit能很好的解决这个问题,简化单元测试,写一点,测一点。

    2.怎么用Junitne?

    如果你用的是Eclipse(自带Junit包),如果其他的需要自己下载jar包导入。

    先写一个简单测试类

     1 public class Test {
     2 
     3     public int sum(int a, int b){
     4         
     5         return a+b;
     6         
     7     }
     8     
     9     public int sub(int a, int b){
    10         
    11         return a-b;
    12         
    13     }
    14     
    15 }

    如果按照我们平常的方法去检查类里面的方法是否正确,我们会这样写

     1 public class TestDemo1 {
     2 
     3     public static void main(String[] args) {
     4         // TODO Auto-generated method stub
     5         Test t = new Test();
     6         
     7         int result = t.sum(1, 2);
     8         if(result == 3){
     9             System.out.println("sum方法正确");
    10         }
    11         
    12         int result2 = t.sub(3, 1);
    13         if(result2 == 2){
    14             System.out.println("sub方法正确");
    15         }
    16     }

    哪我们现在用Junit来测试方法

     1 public class TestDemo2 {
     2     
     3     @Test
     4     public void testSum(){
     5         Demo d = new Demo();
     6         int result = d.sum(1, 2);
     7         if(result == 3){
     8             System.out.println("sun方法正确");
     9         }
    10     }
    11     
    12     @Test
    13     public void testSub(){
    14         Demo d = new Demo();
    15         int result = d.sum(3, 1);
    16         if(result == 2){
    17             System.out.println("sub方法正确");
    18         }
    19     }
    20     
    21 }

    如何运行Junit呢,要测那个方法就在那个方法上点右键Run As JUnit Test

    如果结果出现如下的绿色横条,则测试通过,红色横条,则测试失败

    这时候肯定会大骂一句,这个有什么用,代码差不多,效果也差不多。

    接下来先介绍几种类似@Test的注解

      1.@Test: 测试方法

        a)(expected=XXException.class)如果程序的异常和XXException.class一样,则测试通过
        b)(timeout=100)如果程序的执行能在100毫秒之内完成,则测试通过

      2.@Ignore: 被忽略的测试方法:加上之后,暂时不运行此段代码

      3.@Before: 每一个测试方法之前运行

      4.@After: 每一个测试方法之后运行

      5.@BeforeClass: 方法必须必须要是静态方法(static 声明),所有测试开始之前运行,注意区分before,是所有测试方法

      6.@AfterClass: 方法必须要是静态方法(static 声明),所有测试结束之后运行,注意区@After

    关于注释的使用用一个例子

     1 public class JunitTest {
     2     public JunitTest() {
     3         System.out.println("构造函数");
     4     }
     5  
     6     @BeforeClass
     7     public static void beforeClass(){
     8         System.out.println("@BeforeClass");
     9     }
    10      
    11     @Before
    12     public void befor(){
    13         System.out.println("@Before");
    14     }
    15      
    16     @Test
    17     public void test(){
    18         System.out.println("@Test");
    19     }
    20      
    21     @Ignore
    22     public void ignore(){
    23         System.out.println("@Ignore");
    24     }
    25      
    26     @After
    27     public void after(){
    28         System.out.println("@After");
    29     }
    30      
    31     @AfterClass
    32     public static void afterClass(){
    33         System.out.println("@AfterClass");
    34     }
    35 }

    结果为

    1 @BeforeClass
    2 构造函数
    3 @Before
    4 @Test
    5 @After
    6 @AfterClass

    关于Junit的优势举一个小例子,在上面的例子中每个方法都有Demo d = new Demo();这样会很麻烦,所以在Junit中我们可以把类的实例化放入@Before中

     1 public class TestDemo3 {
     2     
     3     Demo d = null;
     4     
     5     @Before
     6     public void testBefore(){
     7         d = new Demo();
     8     }    
     9     
    10     @Test
    11     public void testSum(){
    12         int result = d.sum(1, 2);
    13         if(result == 3){
    14             System.out.println("sun方法正确");
    15         }
    16     }
    17     
    18     @Test
    19     public void testSub(){
    20         int result = d.sum(3, 1);
    21         if(result == 2){
    22             System.out.println("sub方法正确");
    23         }
    24     }
    25 }

    这样要测试的东西越多,我们的Junit的优势越明显。而且当我们需要在检测前打开什么时,结束测试后,要关掉相应的东西,可以把东西分别写在@Before和@After中,这样代码量会大量减少。

    如果我们需要运行所有的测试方法,可以在测试类上点Run As JUnit Test

  • 相关阅读:
    css 元素垂直居中
    win7定时关机
    tabel使用总结
    Js获取当前日期时间及其它操作
    织梦dedecms自定义表单设置必填项
    css字体文本格式 鼠标样式
    css溢出文本显示省略号
    java注解学习
    自定义JSON返回字段
    Spring-解决请求中文乱码问题
  • 原文地址:https://www.cnblogs.com/Vamps0911/p/10764943.html
Copyright © 2011-2022 走看看