Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/398.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
Java 为私有方法的NullPointerException编写junit测试用例时出现的问题_Java_Junit_Reflection_Private Methods - Fatal编程技术网

Java 为私有方法的NullPointerException编写junit测试用例时出现的问题

Java 为私有方法的NullPointerException编写junit测试用例时出现的问题,java,junit,reflection,private-methods,Java,Junit,Reflection,Private Methods,函数模板是 private static void processTextFile(String iFile, String tmpDirLoc, String tmpDrive, String iMode) 我想在iFile为null的情况下测试NullPointerException。 由于原始方法processTextFile本质上是私有的,所以我在测试用例中使用反射来访问该方法,但我无法为AssertThrows条件编写测试用例。 请帮我写这个 这是我的密码 @Test()

函数模板是

private static void processTextFile(String iFile, String tmpDirLoc, String tmpDrive, String iMode)
我想在iFile为null的情况下测试NullPointerException。 由于原始方法processTextFile本质上是私有的,所以我在测试用例中使用反射来访问该方法,但我无法为AssertThrows条件编写测试用例。 请帮我写这个

这是我的密码

    @Test()
    public void TC1_processTextFileTest() {
    Method method = crashParser.class.getDeclaredMethod("left",String.class,int.class);
    method.setAccessible(true);
    crashParser cp = new crashParser();
    String ifile=null;
    //cp.processTextFile(ifile,null,null,null);
    //NullPointerException ex= assertThrows(NullPointerException.class,()-> 
   //cp.processTextFile(ifile,null,null,null));
    //assertEquals("Array can't be null",ex.getMessage());
   }

与其为私有方法编写单元测试,不如引用公共对象或使用该私有方法断言某个内部状态符合预期的方法

不是为私有方法编写单元测试,而是引用公共对象或方法,该对象或方法利用该私有方法断言某些内部状态符合预期

它总是让我感到困惑,为什么人们认为他们应该测试私有方法……实际上,你要问的是如何使用反射调用无法访问的私有方法;你看,它总是让我感到困惑,为什么人们认为他们应该测试私有方法……实际上,你要问的是如何使用反射调用无法访问的私有方法;看见