我正在尝试使用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(...
吗?