相关疑难解决方法(0)

我该如何对线程代码进行单元测试?

到目前为止,我已经避免了测试多线程代码的噩梦,因为它看起来像是一个雷区太多了.我想问一下人们如何测试依赖线程成功执行的代码,或者人们如何测试那些只在两个线程以给定方式交互时出现的问题?

对于今天的程序员来说,这似乎是一个非常关键的问题,将我们的知识集中在这个imho上是有用的.

multithreading unit-testing

673
推荐指数
16
解决办法
15万
查看次数

如何编写多线程单元测试?

我想知道是否有一些单元测试框架能够轻松编写多线程测试?

我想象的是:n次同时调用一个特殊的测试方法m次.在完成所有测试线程之后,将调用一个断言方法,其中应该验证一些约束.

我目前的方法是在junit测试方法中创建Thread对象,手动循环每个run()方法中的实际测试用例,等待所有线程然后验证断言.但是使用这个,我为每个测试都有一个大的样板代码块.

你有什么经历?

java junit multithreading unit-testing

15
推荐指数
1
解决办法
4786
查看次数

是否有类似于微软CHESS的Java工具?

是否存在类似于Microsoft的CHESS的 Java现有工具?或者CHESS源代码是否打开,以便我可以尝试将其转换为Java?

.net java

9
推荐指数
2
解决办法
465
查看次数

在Java中测试线程安全性

可能重复:
我应该如何对线程代码进行单元测试?
测试多线程代码或确保代码是线程安全的准则

是否可以"单元测试"一个简单的类是否是线程安全的?

我的具体情况是一个简单的类,即子集向量:给定要保持的向量位置的"白名单"和输入向量,它产生一个输出向量,其中只有白名单中位置的值.我想写一个单元测试(如果可能的话)以确保如果我们将来重构这个类,我们保持它的线程安全.如果类不再是线程安全的,单元测试将失败.我意识到这有点模糊,并且在定义之下.

java multithreading thread-safety

8
推荐指数
2
解决办法
7556
查看次数

为自定义屏障设计测试类

我必须使用锁作为我课程工作的一部分来实现自定义障碍类.为了测试我的LockBarrier课程,我提出了以下测试代码.它工作正常,但我担心这是否是正确的方法.你能否提出我可以做的改进,特别是构建课程.我认为我的编码方式不正确.欢迎任何建议.

public class TestDriver 
{
        private static LockBarrier barrier;

        static class Runnable1 implements Runnable
        {
            public Runnable1()
            { }

            public void run()
            {
                try
                {
                    System.out.println(Thread.currentThread().getId()+" lazy arrived at barrier");
                    Thread.sleep(10000);
                    barrier.await();
                    System.out.println(Thread.currentThread().getId()+" passed barrier");           

                }
                catch (InterruptedException ie)
                {
                    System.out.println(ie);
                }
            }     

        }

        static class Runnable2 implements Runnable
        {       

            public Runnable2()
            { } 

            public void run()
            {
                try
                {
                    System.out.println(Thread.currentThread().getId()+" quick arrived at barrier");

                    //barrier.await(1,TimeUnit.SECONDS);
                    barrier.await();
                    System.out.println(Thread.currentThread().getId()+" passed barrier");
                }               
                catch (InterruptedException ie)
                {
                    System.out.println(ie);
                }
            } …
Run Code Online (Sandbox Code Playgroud)

java multithreading

2
推荐指数
1
解决办法
2531
查看次数

标签 统计

java ×4

multithreading ×4

unit-testing ×2

.net ×1

junit ×1

thread-safety ×1