分配后在 `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.
我正在编写一个 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
version3.1
for building project, if you do decide to useGradle
version3.1
and experience other issues after upgrading.Kindly look atGradles change logs
to update your Gradle build scripts(build.gradle
) accordingly, before commenting other unrelated issues.