Android单元测试与数据绑定

Android单元测试与数据绑定,android,unit-testing,data-binding,Android,Unit Testing,Data Binding,我现在正在做一个非常好的项目,在那里我们引入了Android数据绑定。代码中的一切都很好,绑定也很完美,但是当涉及到单元测试时,我无法测试我的代码。 我正在努力模仿数据绑定 将此行添加到设置()方法时: when(DataBindingUtil.class,“充气”,充气器,anyInt(),any(ViewGroup.class),anyBoolean())。然后返回(viewDataBinding.getRoot()) 我将收到以下错误消息: …然后可能缺少return() 正如你所看到的,

我现在正在做一个非常好的项目,在那里我们引入了Android数据绑定。代码中的一切都很好,绑定也很完美,但是当涉及到单元测试时,我无法测试我的代码。 我正在努力模仿数据绑定

将此行添加到设置()方法时:

when(DataBindingUtil.class,“充气”,充气器,anyInt(),any(ViewGroup.class),anyBoolean())。然后返回(viewDataBinding.getRoot())

我将收到以下错误消息:

…然后可能缺少return()

正如你所看到的,我在最后回来了,但莫基托没有看到

我试图将代码转换为具体的测试方法:

  @Test
public void createViewHolder() {
  .... CODE....
 when(DataBindingUtil.inflate(inflater,anyInt(),any(ViewGroup.class),anyBoolean())).thenReturn(viewDataBinding);
... CODE ...}
在这种情况下,我将收到以下消息:

org.mockito.exceptions.misusing.ErrorTypeOfReturnValue: 充气()无法返回ViewDataBinding$$EnhancerByMockitoWithCGLIB$$f5f40ad1 充气()应返回视图

我不明白为什么我会收到这个消息,因为DataBindingUtil.inflate在代码中返回一个ViewDataBinding,它在代码中工作得非常好。
你们有没有人尝试过在Android上模拟和单元测试数据绑定?

好的,问题如下: 需要补充:

@PrepareForTest({DataBindingUtil.class}) 直到课程开始

我必须将这些行添加到设置()中

然后:


进入测试本身

尽管如此,我仍然在寻找一个很棒的框架,即如何测试数据绑定的XML。
PowerMockito.mockStatic(DataBindingUtil.class);
PowerMockito.mockStatic(ViewDataBinding.class);
when(DataBindingUtil.inflate(eq(inflater), anyInt(), any(ViewGroup.class), anyBoolean())).thenReturn(viewDataBinding);
when(viewDataBinding.getRoot()).thenReturn(itemView);