【发布时间】:2014-11-17 06:47:32
【问题描述】:
说我有这样的方法:
synchronized void incrementIndex() {
index++;
}
如果多个线程同时尝试递增索引,我想对该方法进行单元测试,以查看索引的最终值是否设置正确。假设我不知道方法声明中的“synchronized”关键字(我只知道方法的契约),我该如何进行测试?
附言如果有帮助,我正在使用 Mockito 编写测试用例。
【问题讨论】:
-
我不确定这是否可测试,因为您的 incrementIndex 方法是原子的。仅当至少有两个步骤必须一起执行时,同步才重要,例如两次写入、两次读取,或者最典型的一次读取和一次写入(经典的测试和设置问题)。任何测试如何捕获您的 incrementIndex() 方法未能同步?
标签: java unit-testing testing synchronized