我有这个布局测试,在我的布局menu_item_layout.xml
中有IconTextView
文字"{fa-times}"
。当我尝试运行测试时,我得到android.view.InflateException
。
但是,如果我从"{fa-times}"
中删除了文本IconTextView
,则测试成功通过。
@RunWith(RobolectricTestRunner::class)
@Config(constants = BuildConfig::class)
class MenuItemLayoutTest {
@Test
fun shouldDisplayCorrectTextViews() {
val layout = RoboLayoutInflater.from(RuntimeEnvironment.application)
.inflate(R.layout.menu_item_layout, MenuItemLayout(RuntimeEnvironment.application, null), true) as MenuItemLayout
assertEquals(layout.itemNameTextView.text,"Item 001")
}
}
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="60dp">
<com.joanzapata.iconify.widget.IconButton
android:id="@+id/minusButton"
android:layout_width="60dp"
android:layout_height="60dp"
android:text="{fa-minus-circle}"
android:textColor="@color/minus_button"
android:textSize="24sp"/>
</RelativeLayout>
我的假设是RuntimeEnvironment.application
需要调用Iconify.with(FontAwesomeModule())
来加载。但我不知道该怎么做。是否可以延长RuntimeEnvironment.application
的{{1}}?
我正在使用Robolectric
我运行robolectric:3.1.2
时测试失败,但如果我对单个文件(右键单击文件./gradlew test
和MenuItemTest.kt
)运行测试,则会通过。