当前位置: 首页 > 知识库问答 >
问题:

布局充气模拟问题

潘弘扬
2023-03-14

我尝试稍后使用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);
   ....
    }

我试图遵循这个答案:如何对这一行的布局进行单元测试。android中的from()

但它不起作用。

编辑:现在我得到:

组织。莫基托。例外情况。滥用。MissingMethodInvocationException:when()需要的参数必须是“模拟的方法调用”。例如:when(mock.getArticles())。返回(物品);

甚至可以在(LayoutInflater.from(context))时执行。然后使用mockito和robolectric返回(…

共有1个答案

戈正初
2023-03-14

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

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

 类似资料:
  • TP5 提供了三种模板布局使用方式,CMF 选用了模板标签方式,这样方便模板开发者手动,显式的控制是否要使用模板布局; 请不要在任何配置文件中开启模板引擎的layout_on设置 开启模板布局很简单,只要在要使用模板布局的模板文件开头增加如下代码: <layout name="public@layout" /> 表示当前模板需要使用当前主题下 public/layout.html 布局模板文件。

  • TP 提供了三种模板布局使用方式,CMF 选用了模板标签方式,这样方便模板开发者手动,显式的控制是否要使用模板布局; 请不要在任何配置文件中开启模板引擎的layout_on设置 开启模板布局很简单,只要在要使用模板布局的模板文件开头增加如下代码: <layout name="public@layout" /> 表示当前模板需要使用当前主题下 public/layout.html 布局模板文件。当

  • ThinkPHP的模板引擎内置了布局模板功能支持,可以方便的实现模板布局以及布局嵌套功能。 有三种布局模板的支持方式: 第一种方式:全局配置方式 这种方式仅需在项目配置文件中添加相关的布局模板配置,就可以简单实现模板布局功能,比较适用于全站使用相同布局的情况,需要配置开启layout_on 参数(默认不开启),并且设置布局入口文件名layout_name(默认为layout)。 return [

  • 是否有一个隐藏在Internet中的ByteBuffers方面的gzip放气库?允许我们推送原始数据然后提取放气数据的东西?我们已经搜索过了,但只找到了处理InputStreams和OutputStreams的库。 我们的任务是创建gzip过滤器,用于在管道架构中减少字节缓冲流。这是一个pull架构,其中最后一个元素从早期元素中提取数据。我们的gzip过滤器处理字节缓冲流,没有单个流对象可用。 我