我有 3 组测试:单元、集成、验收。
@RunWith(SpringRunner.class))当我运行“所有测试”时,会启动 2 个不同的应用程序上下文,并且我有重复的队列订阅者。
我知道此订阅者重复的以下解决方法:
在一组测试之后,是否有任何方便的方法来卸载应用程序上下文?
@DirtiesContext 是绝配spring.test.context.cache.maxSize=1 @RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.DEFINED_PORT)
@TestExecutionListeners({FlywayTestExecutionListener.class, DependencyInjectionTestExecutionListener.class, DirtiesContextTestExecutionListener.class})
@DirtiesContext(classMode = DirtiesContext.ClassMode.AFTER_CLASS)
public abstract class AcceptanceTest {}
Run Code Online (Sandbox Code Playgroud) 当HashMap搜索密钥时,它在2个位置使用密钥的哈希码:
在bucket中查找条目(openjdk7 HashMap get方法源码)
public V get(Object key) {
if (key == null)
return getForNullKey();
int hash = hash(key.hashCode());
for (Entry e = table[indexFor(hash, table.length)];
e != null;
e = e.next) {
Object k;
if (e.hash == hash && ((k = e.key) == key || key.equals(k)))
return e.value;
}
return null;
}
Run Code Online (Sandbox Code Playgroud)为什么HashMap正在检查桶内的哈希码?为什么仅仅检查存储桶内的引用和对象是否足够?