1

アプリで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」を返します

4

2 に答える 2