适用于tess4J应用程序的JUnit测试

时间:2018-11-22 07:41:21

标签: java junit

我想测试我的方法以查看它是否可以正确读取文件。我似乎无法全神贯注于JUnit Testing。有人可以告诉我如何为该代码正确编写JUnit测试:

import java.io.File;
import net.sourceforge.tess4j.*;
import net.sourceforge.tess4j.util.LoadLibs;

public class ImageTest {

    public static String imageService(String filePath) {
        File imageFile = new File("tessImage.png");
        ITesseract instance = new Tesseract();

        //Let tessdata be extracted in case you dont have tessdata folder
        File tessDataFolder = LoadLibs.extractTessResources("tessdata");
        //Set the tessdata path
        instance.setDatapath(tessDataFolder.getAbsolutePath());

        instance.setLanguage("eng");
        try {
            String result = instance.doOCR(imageFile);
            return result;
        } catch (TesseractException e) {
            System.err.println(e.getMessage());
            return "this is an error" ;
        }
    }
}

1 个答案:

答案 0 :(得分:1)

Forword:您的异常处理令人恐惧。当您的呼叫者需要OCR字符串时,请不要返回错误消息。坚持JAVA风格。如果发生错误,请抛出异常!

下一步:您实际上从未使用过“ filePath”参数。显然这是一个错误。

您首先需要问自己要测试什么。您要测试“ imageService”方法吗?然后创建第二个类,然后从那里测试您的方法。在此测试类中,您将获取一个示例文件,调用imageService并将结果与​​预期的结果进行比较。这类比较是通过Assert语句完成的。请查看jUnit文档以获取更多详细信息。