【发布时间】:2016-07-13 11:02:18
【问题描述】:
我现在正在做一个非常好的项目,我们在其中引入了 Android 数据绑定。代码中一切正常,绑定完美,但是在单元测试方面我无法测试我的代码。 我正在努力模拟数据绑定......
将此行添加到 setUp() 方法时:
PowerMockito.when(DataBindingUtil.class, "inflate", inflater,anyInt(),any(ViewGroup.class),anyBoolean()).thenReturn(viewDataBinding.getRoot());
我将收到以下错误消息:
...thenReturn() 可能会丢失。
如你所见,最后我有 thenReturn ,但 Mockito 没有看到。
我尝试将代码移动到具体的测试方法中:
@Test
public void createViewHolder() {
.... CODE....
when(DataBindingUtil.inflate(inflater,anyInt(),any(ViewGroup.class),anyBoolean())).thenReturn(viewDataBinding);
... CODE ...}
在这种情况下,我将收到以下消息:
org.mockito.exceptions.misusing.WrongTypeOfReturnValue: Inflate() 无法返回 ViewDataBinding$$EnhancerByMockitoWithCGLIB$$f5f40ad1 inflate() 应该返回视图
我不明白为什么我会收到此消息,因为 DataBindingUtil.inflate 在代码中返回了一个 ViewDataBinding,它可以完美运行。 你们有没有人尝试过在 Android 上模拟和单元测试数据绑定?
【问题讨论】:
标签: android unit-testing data-binding