zl程序教程

您现在的位置是:首页 >  后端

当前栏目

Junit单元测试不支持多线程的问题详解编程语言

多线程junit编程语言 问题 详解 支持 单元测试
2023-06-13 09:20:42 时间

Junit单元测试不支持多线程的问题详解编程语言

今天有一个哥们问了一个用junit测试多线程的问题,他把程序也发来了,说用main方法执行任何问题都没有,但是使用junit测试的话,程序就走不完,根据他的说法,我测试了一下,然后就用Junit开始单元测试,然后我就开始陷入崩溃的边缘

测试结果果然和小伙说的一致,就是不走,然后我改代码再测试,再冥思一会儿,再改再测试,还是无果,最后选择度娘一下,结论是:Junit单元测试不支持多线程

然后,整个人都不好了 浪费了我好多时间,就是因为这个!!!

虽然知道了结果,但是我还是需要亲自验证了一下程序如下:


import java.io.FileInputStream;


import java.util.Scanner;


import org.junit.Test;


public class TestThread {


   //public static void main(String[] args) {


   @Test


   public void test(){


     Runnable r = new Runnable() {


       public void run() {


         System.out.println( 111 );


         Scanner sc = null;


         try {


           sc = new Scanner(new FileInputStream( ));


           System.out.println( 222 );


         } catch (Exception e) {


           e.printStackTrace();


         }


         while(sc.hasNext()){


           System.out.println(sc.nextLine());


         }


       }


     };


     


     Runnable r1 = new Runnable() {


       public void run() {


         System.out.println( 333 );


         Scanner sc = null;


         try {


           sc = new Scanner(new FileInputStream( ));


           System.out.println( 444 );


         } catch (Exception e) {


           e.printStackTrace();


         }


         while(sc.hasNext()){


           System.out.println(sc.nextLine());


         }


       }


     };


     


     new Thread(r).start();

     new Thread(r1).start();


   }


}

测试结果如下:

1.如果使用main方法进行测试打印的结果是:


111


333


444


222

2.如果使用junit进行测试的话打印的结果是:


111


333

Junit单元测试不支持多线程的问题详解编程语言

转载请注明来源网站:blog.ytso.com谢谢!

原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/14600.html

cjava