我想测试我的方法以查看它是否可以正确读取文件。我似乎无法全神贯注于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" ;
}
}
}
答案 0 :(得分:1)
Forword:您的异常处理令人恐惧。当您的呼叫者需要OCR字符串时,请不要返回错误消息。坚持JAVA风格。如果发生错误,请抛出异常!
下一步:您实际上从未使用过“ filePath”参数。显然这是一个错误。
您首先需要问自己要测试什么。您要测试“ imageService”方法吗?然后创建第二个类,然后从那里测试您的方法。在此测试类中,您将获取一个示例文件,调用imageService并将结果与预期的结果进行比较。这类比较是通过Assert语句完成的。请查看jUnit文档以获取更多详细信息。