我有以下使用 net.spy.memcached.MemcachedClient 的单元测试
@Test
public void testCASFailsWrite() throws Exception {
Integer begin = new Integer(3);
client.set(key, 0, begin);
CASValue<Object> casValue = client.gets(key);
Assert.assertNotNull(casValue);
Assert.assertTrue(casValue.getValue() instanceof Integer);
Integer fromCache = (Integer) casValue.getValue();
Integer nextSeq = new Integer(fromCache + 9);
long myInvalidValue = casValue.getCas() - 1;
CASResponse response = client.cas(key, myInvalidValue, nextSeq);
Assert.assertEquals(CASResponse.EXISTS, response);
}
我希望 CASResponse 显示该值已经存在,因为我有一个无效的 casValue,但是它在最后一个 Assert 上返回为 OK。我想确保我的密钥句柄在多个 JVM 上同时更新。我的单元测试是通过 com.thimbleware.jmemcached.AbstractCache 的实现使用嵌入式 memcache 进程。当我的密钥已经在内存缓存中并且我没有相同的 casValue() 时,我可以依靠 CASResponse 来显示 EXISTS 吗?