java - tess4J 应用程序的 JUnit 测试
问题描述
我想测试我的方法,看看它是否能正确读取文件。我似乎无法完全理解 JUnit 测试。有人可以告诉我如何正确编写此代码的 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" ;
}
}
}
解决方案
前言:你的异常处理是可怕的。当您的调用者期待 OCR 字符串时,不要返回错误消息。坚持JAVA风格。如果出现错误 - 抛出异常!
下一步:您从未真正使用过“filePath”参数。这显然是一个错误。
您首先需要问自己要测试什么。是你要测试的“imageService”方法吗?然后创建第二个类,然后从那里测试您的方法。在这个测试类中,您将获取一个示例文件,调用您的 imageService 并将结果与您期望的结果进行比较。这些比较是通过断言语句完成的。请查看 jUnit 文档以获取更多详细信息。
推荐阅读
- haskell - 带有 Debian Buster 的 Raspberry Pi 4 上的 GHC 和 Cabal
- javascript - jqGrid getRowData 不返回当前值集
- azure-data-factory - Azure 数据工厂映射数据流添加行号
- javascript - javascript 游戏 - 只需点击键而不是一直按住键即可获胜
- pyspark-sql - 为什么 pyspark.sql 下层函数不接受文字列名和长度函数呢?
- uicollectionview - UICollectionView 在调整单元格大小时拖放
- python - 在python中将元组的元组转换为字节
- python - 使用 python selenium 下载文件,使用 firefox 驱动程序正确下载目录
- gmail-api - user@domain.com 的委派被拒绝
- hyperledger-fabric - 是否可以访问外部 PC 而不是具有管理员的计算机?(docker swarm)