我调用传递参数的方法。如果这个参数等于某个特定值,那么一个线程会重复执行一些操作,直到它停止。在每一次重复中,一些值都会改变。
有没有办法从JUnit检查这些值?JUnit测试:如何测试线程的结果
回答
如果你正在产生线程,你不再是单元测试 - 你是集成测试。重构你的代码,以便改变这个'值'的逻辑可以在没有线程产生的情况下被测试。如果它在没有产生线程的情况下工作,那么它会在产生线程时工作(我知道我已经为自己设置了一个讲座...您需要确保您正确地同步任何可能共享的变量,而不要有任何可能导致死锁的代码)。
没有看到代码,很难尝试建议测试它的方法。但是,如果您正在产生线程,则绝对不是单元测试。
我想说,需要一个'tick()'方法来封装单个重复并对其进行单元测试。如果它返回那些“一些值”而不是改变对象的字段,那么测试(和整体解耦)就更好了。 – 2012-01-06 13:00:50
@Victor同意,这是更好的线程行为封装。不过,我希望整个行为单元在我开始勾选' – BeRecursive 2012-01-06 13:02:02
之前进行测试。对不起,没有提供任何代码。这是我大学项目的一部分,我恐怕我不能这样做。我知道我的代码是可以工作的,但是因为我必须在项目中包含一些JUit测试,所以我想知道是否有任何方法来测试这部分代码。我创建一个线程,线程以指定的时间间隔重复。所以,我无法像使用JUnit那样测试它。谢谢! :) – anna 2012-01-06 13:35:29
如果您试图测试以确定每个迭代是否适当地修改了这些值,则使用期望的输入调用迭代代码并测试预期的输出。测试每个peice的隔离:
伪Java代码:
for each (file : files) {
doSomething(file); // this updates some running totals or something
}
然后你想要写一些单元测试,你要测试,看看每个输入打电话给你doSomething()
如果值更新适当的(模拟哪里必要)。然后做一个集成测试,让线程产生并检查结果值。
- 1. JUnit线程测试
- 2. junit tfs测试结果
- 3. 如何测试junit测试
- 4. 程序的JUnit测试结果
- 5. 如何分析junit测试结果
- 6. 如何从测试运行器获取JUnit测试结果?
- 7. 使用Junit测试线程
- 8. JUnit,测试和线程
- 9. 结束JUnit测试
- 10. 测试完成后生成Android JUnit测试用例的结果
- 11. 查看gradle的junit测试结果?
- 12. JUnit测试用例中的线程测试SharedResource类
- 13. Maven.surefire.util.SurefireReflectionException当测试Junit测试
- 14. 了解这些JUnit测试结果
- 15. 从junit测试中获取结果
- 16. 有线JUnit测试断言
- 17. 的JUnit:测试
- 18. Android Junit测试冻结
- 19. Hibernate + JUnit多线程集成测试
- 20. 如何将JUnit 4测试添加到JUnit 3测试套件
- 21. 如何在JUnit测试
- 22. 如何Junit测试servlet-filters
- 23. 如何编写JUnit测试?
- 24. 如何做jUnit测试
- 25. 如何打包JUnit测试
- 26. 如何JUnit测试IntentService
- 27. 如何测试junit语句?
- 28. JUnit如何找到测试?
- 29. Hangman JUnit测试
- 30. spring junit测试
让我们看看一些代码。 – dan 2012-01-06 12:52:22