相关疑难解决方法(0)

如何使用线程执行单元测试?

执行摘要:当线程中抛出断言错误时,单元测试不会消失.这是有道理的,因为不应该允许一个线程崩溃另一个线程.问题是我如何1)在第一个辅助线程崩溃时使整个测试失败,或者2)循环并确定每个线程完成后的状态(参见下面的代码).执行后者的一种方法是通过具有每线程状态变量,例如"boolean [] status"并且具有"status [i] == false"意味着线程失败(这可以被扩展以捕获更多信息).但是,这不是我想要的:我希望它在抛出断言错误时就像任何其他单元测试一样失败.这甚至可能吗?这是可取的吗?

我感到无聊,我决定在我的单元测试中产生一堆线程,然后让它们调用一个服务方法,只是为了它.代码看起来大致如下:

Thread[] threads = new Thread[MAX_THREADS];
for( int i = 0; i < threads.length; i++ ) {
    threads[i] = new Thread( new Runnable() {
        private final int ID = threadIdSequenceNumber++;
        public void run() {
            try {
                resultRefs[ID] = runTest( Integer.toString( ID ) ); // returns an object
            }
            catch( Throwable t ) { 
                // this code is EVIL - it catches even
                // Errors - don't copy it - more on this below …
Run Code Online (Sandbox Code Playgroud)

java junit multithreading unit-testing

11
推荐指数
2
解决办法
9428
查看次数

如何证明多线程有效?

如何证明多线程在我的C#程序中有效?这是针对测试要求的.例如,我将不得不在记录器类中添加一些锁定(是的,我知道,我不应该编写自己的日志类),我需要一个测试用例来证明更改是有效的.

c# testing multithreading

3
推荐指数
2
解决办法
762
查看次数

标签 统计

multithreading ×2

c# ×1

java ×1

junit ×1

testing ×1

unit-testing ×1