我调用传递参数的方法。如果这个参数等于某个特定值,那么一个线程会重复执行一些操作,直到它停止。在每一次重复中,一些值都会改变。
有没有办法从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测试
- 3. JUnit,测试和线程
- 4. 结束JUnit测试
- 5. 了解这些JUnit测试结果
- 6. 有线JUnit测试断言
- 7. 的JUnit:测试
- 8. Android Junit测试冻结
- 9. 如何JUnit测试IntentService
- 10. 如何Junit测试servlet-filters
- 11. 如何编写JUnit测试?
- 12. JUnit如何找到测试?
- 13. JUnit测试后
- 14. 用jUnit测试
- 15. JUnit测试
- 16. Junit REST测试?
- 17. Java JUnit测试
- 18. JUnit测试AspectJ
- 19. 从jUnit测试
- 20. 停止测试,如果JUnit测试失败
- 21. 继承Junit测试的测试主题
- 22. Junit:如何测试neo4j查询的多个预期结果?
- 23. GWT的JUnit测试
- 24. Kotlin的JUnit测试
- 25. NatTable的JUnit测试
- 26. 测试的Junit Randomic
- 27. assertSame Junit的测试
- 28. 的XCode失踪在线测试结果
- 29. 如何测试Ruby on Rails功能测试中的JSON结果?
- 30. 如何在Jenkins中使用Email-ext获得Junit测试结果
让我们看看一些代码。 – dan 2012-01-06 12:52:22