我有一个自定义的 android 视图,其中包含我想测试的样式属性。我正在尝试使用 RoboAttributeSet 将这些推送到我的视图的构造函数中,但是对于我的一生来说,我无法找出我需要使用的正确语法来让它们工作。无论我尝试什么,在 robolectric 测试中运行时,视图都不会拾取我正在推动的属性。在设备或模拟器上运行应用程序很好。
有没有关于如何使用这些的例子?有谁知道如何做到这一点?这是我的自定义视图的代码片段以及它如何使用可样式属性。
TypedArray customProperties = aContext.getTheme().obtainStyledAttributes(aAttrs, R.styleable.LoginView, 0, 0);
try {
userName.setHint(customProperties.getString(R.styleable.LoginView_username_hint));
} finally {
customProperties.recycle();
}
这是我的 Robolectric/Spock 单元测试的片段......
given:
AttributeSet attributes = new RoboAttributeSet(
[new Attribute("com.acme:attr/username_hint", "myhint", "com.acme")], Robolectric.application.resources, LoginView)
when:
view = new LoginView(Robolectric.application, attributes)
then:
view.getUsername().getHint() == "myhint"
谢谢乔治
_