Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/198.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android roboelectric单元测试期间获取空指针异常_Android_Robolectric - Fatal编程技术网

Android roboelectric单元测试期间获取空指针异常

Android roboelectric单元测试期间获取空指针异常,android,robolectric,Android,Robolectric,我有一个按钮点击监听器,它的点击片段被替换,并在下一个片段上传递参数。 代码:- 按钮点击的书面测试用例:- Button custom_btn = (Button) fragment.getView().findViewById(R.id.custom_btn); custom_btn.performClick(); 但在执行测试用例时,当在CustomList()片段上获取参数时,它会显示空指针异常 productsBean = (ProductsBean) ge

我有一个按钮点击监听器,它的点击片段被替换,并在下一个片段上传递参数。 代码:-

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

Button custom_btn = (Button) fragment.getView().findViewById(R.id.custom_btn);
             custom_btn.performClick();
但在执行测试用例时,当在CustomList()片段上获取参数时,它会显示空指针异常

productsBean = (ProductsBean) getArguments().getSerializable("productsBean");
请尝试更改此代码:

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

productsBean = (ProductsBean) getArguments().getSerializable("productBean");
如您所见,您正在将标记“productBean”添加到bundle中,但当您尝试获取它时,您使用的是标记“productsBean”,其中添加了“s”字符


我会从这一变化开始。

我会说——接球不错!代码中的productBean错误地粘贴了错误的代码。抱歉。还有任何建议@niarbHi@ShivamKapoor,您在哪里调用getArguments?碎片循环的内部方法?顺便说一句,您应该进行一些以前的空检查验证,以防止NPE,如下所示:Bundle arguments=getArguments();如果(arguments!=null){//那么您有参数}否则{//没有提供参数…}我尝试过这个,但是得到了null。所以else语句被调用。因为我是roboelectric的新手。我无法理解我正在运行ProductMenuTest,但为什么它调用ProductMenuTest。因为我已经替换了测试类中的片段。我知道了它为什么要调用ProductMenu。但是为什么要在ProductMenu getArgument()中抛出空指针异常。即使我尝试了更改代码,但仍然没有找到任何解决方案。它的productBean在代码中错误地粘贴了错误的代码。对不起,还有什么建议吗
productsBean = (ProductsBean) getArguments().getSerializable("productBean");