相关疑难解决方法(0)

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

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

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

multithreading unit-testing

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

如何在Rails中使用'Thread.new'测试代码?

在我的rails应用程序中,注册类具有以下功能,

def register_email
  # Something...
  add_to_other_thread do
    send_verification_email
  end
end

def add_to_other_thread(&block)
  Thread.new do
    yield
    ActiveRecord::Base.connection.close
  end
end
Run Code Online (Sandbox Code Playgroud)

我想用这些进行3次测试.

  1. 测试add_to_other_thread(&blcok):
    在使用某个块调用add_to_other_thread 之后,检查它是否使用适当的块调用Thread.new.
  2. 关于register_email的测试:
    在调用register_email 之后,检查add_to_other_thread(&block)是否得到了正确的阻止.
  3. 在积分测试中:
    用户注册后,检查是否通过其他线程发送了正确的电子邮件(使用ActionMailer :: Base.deliveries).

testing multithreading unit-testing ruby-on-rails minitest

6
推荐指数
1
解决办法
442
查看次数