在机器人测试中获取空指针异常

时间:2017-04-18 12:39:19

标签: android robolectric

我点击了一个按钮点击侦听器,并在下一个片段上传递参数。  代码: -

 Fragment fragment = new CustomList();
            Bundle args = new Bundle();
            args.putString("fragment", "Custom");
            args.putSerializable("productBean", productBean);
            fragment.setArguments(args);
            fragmentManager = getActivity().getSupportFragmentManager();
            fragmentTransaction = fragmentManager
                    .beginTransaction();
            fragmentTransaction.setCustomAnimations(R.anim.slide_in, R.anim.slide_out, R.anim.slide_enter, R.anim.slide_exit);
            fragmentTransaction.replace(R.id.container_body, fragment);
            fragmentTransaction.addToBackStack(null);
            fragmentTransaction.commit();

按钮点击的书面测试用例: -

Button custom_btn = (Button) fragment.getView().findViewById(R.id.custom_btn);
             custom_btn.performClick();

但是在执行测试用例时,它会在CustomList()片段上的getArguments时显示空指针异常。

productsBean = (ProductsBean) getArguments().getSerializable("productsBean");

1 个答案:

答案 0 :(得分:1)

尝试更改此代码:

productsBean = (ProductsBean) getArguments().getSerializable("productsBean");

到这个

productsBean = (ProductsBean) getArguments().getSerializable("productBean");

正如您所看到的,您正在向该捆绑添加标签" productBean" ,但是当您尝试获取它时,您使用的是&#34标签; productsBean" ,您添加了" s" charachter。

我会从那个改变开始。