我是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)