我正在编写使用AutoBeanCodex
来编码和解码AutoBeans的测试。当我尝试测试使用AutoBeanCodex.decode(...)
的方法时,我收到如下错误:
java.lang.ClassCastException: com.google.web.bindery.autobean.shared.AutoBean$$EnhancerByMockitoWithCGLIB$$78caf05b cannot be cast to com.google.web.bindery.autobean.shared.impl.AbstractAutoBean
at com.google.web.bindery.autobean.shared.impl.AutoBeanCodexImpl.doDecode(AutoBeanCodexImpl.java:549)
at com.google.web.bindery.autobean.shared.AutoBeanCodex.decode(AutoBeanCodex.java:39)
at ...
第一个问题是我如何处理 gwtmockito 测试中的AutoBeanCodex
?
我必须使用这样的假提供商吗,GwtMockito.useProviderForType(Class, FakeProvider)
?
如果有多种方法可以处理AutoBeanCodex
,最好的方法是什么?
先验的(我还没有使用过 GwtMockito),你应该为AutoBeanFactory.class
配置一个FakeProvider
委托给AutoBeanFactorySource.create()
,以便你得到真正的 AutoBean 实例,AutoBeanCodex
应该能够序列化和反序列化。
您可能应该向 GwtMockito 提出一个问题,以便内置此行为,就像 UiBinder 等人一样。
您还可以使用 powermock 进行静态测试。我已经在同一个测试中将它与 gwtmockito 一起使用