今天有一个哥们问了一个用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
转载请注明来源网站:blog.ytso.com谢谢!
原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/14600.html