我正在对应用程序进行 Robolectric 测试。(带 ABS 的 Robolectric 2.1)。在我的片段中,我有一个带有样式的 TextView:
<TextView android:id="@+id/homepage_title_textview"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center_horizontal"
android:paddingTop="@dimen/loading_textview_padding_top"
android:text="@string/loading_homepage_content"
android:textColor="@color/gray"
style="@android:style/TextAppearance.Medium"/>
任何时候我尝试:
TextView homepageTitle = (TextView) mFragment.getView().findViewById(R.id.homepage_title_textview);
float textSize = homepageTitle.getTextSize();
它总是返回 1.0。我已经测试了 TextView 已经创建并且可见:
assertThat(homepageTitle.getVisibility(), equalTo(View.VISIBLE));
我还将整style="@android:style/TextAppearance.Medium"
条线改为android:textSize="18sp"
改为,看看它是否会有所作为,而事实并非如此。
如果有帮助,这是我的确切 Robolectric 测试:
int style = android.R.style.TextAppearance_Medium;
int[] attrWanted = {android.R.attr.textSize};
TypedArray styleValues = Robolectric.application.getApplicationContext().obtainStyledAttributes(style, attrWanted);
String wantedTextSize = styleValues.getString(0);
String actualTextSize = String.valueOf(myTextView.getTextSize());
WantTextSize 返回“18sp”
actualTextSize 返回“1.0”