Java的Junit与debug模式入门

Java的Junit与debug模式入门

1.Junit的使用入门

导入eclipse内置的junit—junit—junit相应的版本,方式1如下:

方式二使用maven加载如下(见后续maven):

  <dependencies>

    <dependency>

      <groupId>junit</groupId>

      <artifactId>junit</artifactId>

      <version>4.8</version>

      <scope>test</scope>

    </dependency>

  </dependencies>

倘若需要找依赖请到官网上查找,例如如下

https://junit.org/junit5/docs/current/user-guide/ 

 

2.Junit4的常用的方法

@Test  测试方法

@Ignorde  忽略的测试方法

@Before 在每一个方法测试之前运行

@After 在每一个方法之后运行

@BeforeClass 在所有测试方法之前运行,需要的静态的表达方式

@AfterClass  在所有测试方法之后运行,需要是静态的表达方式

public class JUnitTest {

        @After

        public void init() {

                 System.out.println("init");

        }

        @Before   

        public void destroy() {

                 System.out.println("after");

        }

        @Test

        public  void test() {

                 System.out.println("test");

        }

       

        @BeforeClass

        public  static void  testBeforeClass() {

                 System.out.println("beforeClass");

        }

        @AfterClass

        public static void  testAfaterClass() {

                 System.out.println("afterClass");

        }

}//beforeClass   before   test   after   afterClass

所以顺序是beforeClass   before   test   after   afterClass

对于junit5的常用方法(较junit4表达略有不同)

@BeforeAll  只执行一次,在所有的测试方法之前运行(类似于 BeforeClass),需要是静态的方法。

@BeforeAll   只执行一次,在所有的测试方法之前运行(类似于 AfterClass),需要的静态的方法

@BeforeEach 在每个测试方法之前运行,类似于(@Before)

@AfterEach  在每个测试方法之后运行,类似于(@After)

@Test

@DisplayName 更改在测试界面显示的名称。

@Disabled  忽略(类似于@Ignore)

public class JUnitTest {

    @BeforeAll

        public static  void  initBefore() {

                 System.out.println("beforeall");

        }

   

    @AfterAll

    public static void  destroyAfter() {

            System.out.println("destroyAfter");

    }

   

    @Test

    @DisplayName("testHello")

    public void test(){

            System.out.println("test");

    }

   

    @BeforeEach

    public void  testBeforeEach() {

            System.out.println("beforeEach");

    }

   

    @AfterEach

    public void  testAfterEach() {

            System.out.println("afterEach");

    }

   

    @Test

    @Disabled

    @DisplayName("testHello")

    public void test1(){

            System.out.println("test");

    }

   

}

输出结果依次为

Beforeall   beforeEach   test   afterEach    destroyAfter

 

Failures test运行错误

Errors 程序自身的runtime错误

3.Junit的断言

public class JUnitAssert {

       

         @Test

           public   void standardAssertions() {

                assertEquals(2, 2);

                assertEquals(4, 4, "The optional assertion message is now the last parameter.");           assertTrue('a' < 'b', () -> "Assertion messages can be lazily evaluated -- "

                       + "to avoid constructing complex messages unnecessarily.");

                    }

         

         @Test

          public  void groupedAssertions() {

                assertAll("person",

                    () -> assertEquals("John", "John"),

                    () -> assertEquals("Doe", "Doe")

                );

           }

        @SuppressWarnings("static-access")

        @Test

          public   void timeoutNotExceeded() throws InterruptedException {

             assertTimeout(Duration.ofSeconds(2), ()->{ new Thread().sleep(1000);});

            }

         

        @Test

        public  void assertWithHamcrestMatcher() {

        assertThat(2 + 1, is(equalTo(3)));

        assertThat(2 + 1, not(3));

        /*相应还有containsString endsWith startWith

        equlTo equalToIgnoringCase  allOf(比某大且比某小)

         anyOf(满足一个条件即可)  greatThan(大于) lessThan(小于)

        closeTO  正负  hasKey(map集合) hasValue(map集合)等 

这些方法导包有些麻烦,需要复制import static org.hamcrest.CoreMatchers.not后将not更改为相应的方法 

        */

    }

}

 

还有很多其他的方法 ,可以相应的去https://junit.org/junit5/docs/current/user-guide/查看

4.Debug模式

断点 debug测试相关按钮,或者鼠标右键debug as  表示运行到了这一步是方法进入方法里面,指向下一行 是方法不进入方法里边,指向下一行,运行到下一个断点从方法里面跳出来的下一行 不运行方法里边的后续代码行,返回到当前方法行的起始位置。

运行相关的变量参数表

运行相关的信息

猜你喜欢

转载自www.cnblogs.com/gg128/p/9231008.html
今日推荐