当前位置:  开发笔记 > 编程语言 > 正文

什么是从多个线程进行单元测试的最佳方法?

如何解决《什么是从多个线程进行单元测试的最佳方法?》经验,为你挑选了1个好方法。

这是从我的另一个问题开始的.

基本上,一旦我有代码访问该文件(将在一分钟内审查答案)什么是最好的测试方法?

我正在考虑创建一个方法,它只生成大量的BackgroundWorker或者其他东西,告诉他们所有加载/保存文件,并测试不同的文件/对象大小.然后,从线程中获取响应以查看它是否失败/成功/使世界崩溃等.

你能提出任何关于最佳方法的建议吗?正如我之前所说,这对我来说有点新鲜:)

编辑

继ajmastrean的帖子:

我正在使用控制台应用程序来测试Debug.Asserts :)


更新

我最初使用BackgroundWorker来处理线程(因为我已经习惯了来自Windows开发)我很快就意识到当我执行测试时需要完成多个操作(线程)才能继续,我意识到这将是让它做到这一点有点破解.

然后我跟进了ajmastrean的帖子并意识到我应该使用Thread类来处理并发操作.我现在将使用这种方法进行重构(虽然是一种不同的方法).



1> Anthony Mast..:

在.NET中,ThreadPool如果没有设置ManualResetEvents或AutoResetEvents ,线程将不会返回.我发现这些过度杀伤是一种快速的测试方法(更不用说创建,设置和管理的复杂程度).后台工作者也有一些复杂的回调等.

我发现有效的东西

    创建一个线程数组.

    设置ThreadStart每个线程的方法.

    启动每个线程.

    加入所有线程(阻塞当前线程,直到所有其他线程完成或中止)

public static void MultiThreadedTest()
{
    Thread[] threads = new Thread[count];

    for (int i = 0; i < threads.Length; i++)
    {
        threads[i] = new Thread(DoSomeWork());
    }

    foreach(Thread thread in threads)
    {
        thread.Start();
    }

    foreach(Thread thread in threads)
    {
        thread.Join();
    }
}

推荐阅读
kikokikolove
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有