分配后在 `Robolectric` 单元测试中获取 activity `ViewDataBinding` 字段

Get activity `ViewDataBinding` field inside `Robolectric` unit test after being assigned

我正在编写一个 Robolectric 单元测试,它要求我在测试视图数据绑定 class(ViewDataBinding) 下使用 activity,不幸的是没有幸运的是,我一直坚持它在单元测试中为 null

MainActiviy 内部 class:

...
ActivityMainBinding binding; // <-- this field returns null inside unit test
...
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    binding = DataBindingUtil.setContentView(this, R.layout.activity_main);
}
...

如果有人编写了具有类似要求的测试,请举例说明如何在测试完成之前分配 ViewDataBinding classed。谢谢!

Note: I am using Android Studio 2.2

我发现使用 Robolectric 版本 3.1 进行测试是我的问题,升级到使用 Robolectric 版本 3.1.4 后,活动 ViewDataBinding 字段是不再返回 null

查看公关:https://github.com/emartynov/android-architecture/pull/1

感谢 @EugenMartynov 对此问题的贡献。

Note: Used Gradle version 3.1 for building project, if you do decide to use Gradle version 3.1 and experience other issues after upgrading.Kindly look at Gradles change logs to update your Gradle build scripts(build.gradle) accordingly, before commenting other unrelated issues.