如何使用Junit测试java类。不知道从哪里开始

如何使用Junit测试java类。不知道从哪里开始,junit,Junit,各位专家好,, 我想启动Junit/mockito etc测试框架,因为我看到了很多博客,甚至在这里,人们都建议编写测试用例,而不是sysout等等。。但我一直在努力测试:-(。。 我阅读了教程,大部分教程都展示了做和、除、加等测试的示例。好的,我理解,但如何在实际编程中使用它。请有人指导我并帮助编写测试用例,例如下面的VOID方法: public void callHtmls(List<String> pathList, Session session, Image img){

各位专家好,, 我想启动Junit/mockito etc测试框架,因为我看到了很多博客,甚至在这里,人们都建议编写测试用例,而不是sysout等等。。但我一直在努力测试:-(。。 我阅读了教程,大部分教程都展示了做和、除、加等测试的示例。好的,我理解,但如何在实际编程中使用它。请有人指导我并帮助编写测试用例,例如下面的VOID方法:

public void callHtmls(List<String> pathList, Session session, Image img){
    Iterator<String> it = pathList.iterator();
    while(it.hasNext()){
        String path = it.next();
        String htmlPath = getHtmlPath(path); // call to a method
        if(htmlPath!=null){
            System.out.println("HTML Path is = " + htmlPath);
            try {
                callImagePrinter(htmlPath,session, img); //again call to a method
            }catch (Exception e) {
                System.out.println(e.getMessage());
            }
        }
    }
}
public void callHtmls(列表路径列表、会话会话、图像img){
Iterator it=pathList.Iterator();
while(it.hasNext()){
字符串路径=it.next();
字符串htmlPath=getHtmlPath(路径);//对方法的调用
如果(htmlPath!=null){
System.out.println(“HTML路径为=“+htmlPath”);
试一试{
callImagePrinter(htmlPath,session,img);//再次调用方法
}捕获(例外e){
System.out.println(e.getMessage());
}
}
}
}

请帮帮我!!!因为测试,我做了一个噩梦:-(

首先找到依赖项:

  • 输入:
    • 路径列表,会话,img
    • getHtmlPath()
  • 输出
    • callImagePrinter()
    • 系统输出
然后定义要测试的内容

  • 给定路径列表、会话、img的系统输出(可能是最简单和最好的)
  • 如果路径列表非空,则使用该getHtmlPath
  • 如果路径列表非空,则调用callImagePrinter
  • 该System.out在故障情况下写入
  • 例如:

    对于使用Mockito存根输入:

    YourObject spy = spy(yourObject);
    when(spy.getHtmlPath()).thenReturn("htmlpath");
    
    然后调用您的方法:

    callHtmls(asList("html1","html2"), null, null);
    
    以及验证callImagePrinter的输出:

    verify(spy).callImagePrinter(eq("htmlpath"), any(Session.class), any(Image.class));
    

    请注意,
    spy
    when
    eq
    any
    都是
    Mockito
    的静态方法,可能重复感谢Stefan的解释。我使用sysout只是为了检查路径是否正确,但在使用测试用例后希望将其删除。我理解解释,但不知道如何实现将其作为Junit/Mockito添加..我用Mockito附加了一个示例。