布局Inflater模拟问题

时间:2018-03-05 14:32:52

标签: java android unit-testing mockito robolectric

我正在尝试使用layourInflater测试一个方法但是我在行处得到一个空指针

when(LayoutInflater.from(context)).thenReturn(layoutInflaterMock);

我正在尝试测试的方法如下所示:

publc View method(RoomInfoAdapter.FacilityRoomInfoViewHolder holder) {

        View linearLayout = LayoutInflater.from(context).inflate(R.layout.some, holder.getParentLayout(), false);
        TextView label = linearLayout.findViewById(R.id.label);
        TextView textView = linearLayout.findViewById(R.id.type_value);
....
}

我的测试班:

@RunWith(RobolectricTestRunner.class)
@PrepareForTest({LayoutInflater.class})
@Config(sdk = 23, manifest = "src/main/AndroidManifest.xml")
public class Test {

    @Mock
    private Context context;

    @Mock
    private LayoutInflater layoutInflaterMock;

@Before
    public void setup() throws Exception {
        MockitoAnnotations.initMocks(this);
        context = RuntimeEnvironment.application;
....
    }

@Test
    public void test() {

        when(LayoutInflater.from(context)).thenReturn(layoutInflaterMock);
   ....
    }

我试图遵循这个答案: How to unit test this line of LayoutInflater.from() in android

但它不起作用。

编辑:现在我得到了:

  

org.mockito.exceptions.misusing.MissingMethodInvocationException:   when()需要一个必须是'对mock进行方法调用'的参数。   例如:       当(mock.getArticles())thenReturn(文章);

甚至可以使用mockito和robolectric进行when(LayoutInflater.from(context)).thenReturn(...吗?

0 个答案:

没有答案