使用Robolectric RuntimeEnvironment尝试使用Iconify对自定义布局进行充气时出现异常

时间:2016-10-12 09:42:19

标签: android robolectric

我有这个布局测试,在我的布局menu_item_layout.xml中有IconTextView文字"{fa-times}"。当我尝试运行测试时,我得到android.view.InflateException。 但是,如果我从"{fa-times}"中删除了文本IconTextView,则测试成功通过。

MenuItemTest.kt

@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")
    }
}

menu_item_layout.xml

<?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 testMenuItemTest.kt)运行测试,则会通过。

0 个答案:

没有答案