【发布时间】:2012-02-29 11:40:46
【问题描述】:
我正在尝试在 Web 应用程序中实现单元测试,其中某些部分使用 ThreadLocal。
我不知道如何进行测试。
看起来 Junit 使用单个线程(即主线程)运行所有测试。
我需要能够为我的 ThreadLocal 变量分配不同的值。
有没有人遇到过这种情况?大家有什么推荐的。
【问题讨论】:
标签: java unit-testing junit thread-local
我正在尝试在 Web 应用程序中实现单元测试,其中某些部分使用 ThreadLocal。
我不知道如何进行测试。
看起来 Junit 使用单个线程(即主线程)运行所有测试。
我需要能够为我的 ThreadLocal 变量分配不同的值。
有没有人遇到过这种情况?大家有什么推荐的。
【问题讨论】:
标签: java unit-testing junit thread-local
Groboutils 支持运行多线程测试,这将允许您测试 ThreadLocal 变量。
http://groboutils.sourceforge.net/testing-junit/using_mtt.html
【讨论】:
我只是在我的单元测试中启动线程。
我建议您使用Futures 并使用ThreadPoolExecutor 执行它们。
【讨论】:
用超时来装饰各自的测试方法可能就足够了,即@Test(timeout=100)。请注意 Test::timeout 中的“线程安全警告”,尤其是在使用 @BeforeClass 和 @After 注释时。
【讨论】: