Eclipse中的Junit,调试,同步Oxygen.1a版本(4.7.1a)

时间:2018-05-08 12:30:30

标签: java eclipse debugging junit synchronization

假设你有以下课程:

public class A {

public void run() { 
    synchronized(B.class) {
       System.out.println("A: here");       
    }
}
}

public class B {

public void run() {

    synchronized(B.class) {
       System.out.println("B: here");       
    }
}
}

因此obj a和obj b的同步块内的代码会被同步,如果它在同一个jvm上运行。

我想测试同步,所以我有一个A类和B类的JUnit测试用例。

我通过Eclipse Menu DebugAs-> JUnitTest在eclipse上运行两个测试用例。

结果是,没有同步。这是因为Eclipse为每个启动的JUnit Testcase创建了一个新的JVM吗?

如果是,有没有办法测试同步?

谢谢你

1 个答案:

答案 0 :(得分:0)

问题是运行Testcases seperatley。 有了它,它起作用了:

@Test
public void test() {
    Class[] cls = {A.class,B.class};
    // Parallel among classes
    JUnitCore.runClasses(ParallelComputer.classes(), cls);
}