gpt4 book ai didi

java - 布局充气模拟问题

转载 作者:行者123 更新时间:2023-11-30 00:05:26 28 4
gpt4 key购买 nike

我正在尝试使用 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() requires an argument which has to be 'a method call on a mock'. For example: when(mock.getArticles()).thenReturn(articles);

是否有可能使用 mockito 和 robolectric 执行 when(LayoutInflater.from(context)).thenReturn(...

最佳答案

要模拟静态方法或类,您必须使用 PowerMock,将它与 Robolectric 一起使用有点棘手。

你可以在这里试试这个: https://github.com/robolectric/robolectric/wiki/Using-PowerMock

关于java - 布局充气模拟问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49112777/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com