小编gil*_*llJ的帖子

如何单元测试同步代码

我是Java和junit的新手.我有以下要测试的代码.如果你能发表关于测试它的最佳方法的想法,我将不胜感激.

基本上,以下代码是关于从群集中选择领导者.领导者持有对共享缓存的锁定,并且领导者的服务得到恢复和处置,如果它以某种方式失去对缓存的锁定.

我怎样才能确保领导者/线程仍然保持对缓存的锁定,并且另一个线程在第一个执行时仍无法恢复其服务?

public interface ContinuousService {

public void resume();
public void pause();
}


public abstract class ClusterServiceManager {
private volatile boolean leader = false;
private volatile boolean electable = true;
private List<ContinuousService> services;

protected synchronized void onElected() {
    if (!leader) {
        for (ContinuousService service : services) {
            service.resume();
        }
        leader = true;
    }
}

protected synchronized void onDeposed() {
    if (leader) {
        for (ContinuousService service : services) {
            service.pause();
        }
        leader = false;
    }
}

public void setServices(List<ContinuousService> services) …
Run Code Online (Sandbox Code Playgroud)

java junit synchronization unit-testing

9
推荐指数
1
解决办法
5611
查看次数

标签 统计

java ×1

junit ×1

synchronization ×1

unit-testing ×1