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

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

(0)
上一篇 2021年7月19日
下一篇 2021年7月19日

相关推荐

发表回复

登录后才能评论