从jMock 2.6开始,我可以确保通过多个线程一致地看到我的模拟对象
final Mockery mockery = new Mockery();
mockery.setThreadingPolicy(new Synchroniser());
使用jMock 2.5时,我有哪些选择(我遇到间歇性测试“碎片”)?
特别是,使用?包装所有模拟对象方法调用是否足够(更新:不,不符合预期)synchronized?
<T> T synchronizedMock(final T mock,
final Class<T> clazz) {
return (T) Proxy.newProxyInstance(Thread.currentThread().getContextClassLoader(),
new Class[] {clazz, CaptureControl.class},
(proxy, method, args) -> {
synchronized (mock) {
return method.invoke(mock, args);
}
});
}
使用上述方法时,我遇到任何死锁的机会有多大?
叮当猫咪
相关分类