【发布时间】:2018-02-07 19:57:31
【问题描述】:
我有一个从 Hdfs 读取文件并尝试测试该方法的方法
我首先尝试了 HDFSMini 集群,但没有成功。这种类型的方法是否可以测试。如果是这样,需要什么依赖项来测试它以及如何在不安装 hadoop 的情况下在本地模拟 Hdfs 文件系统。应该没有hadoop安装的依赖。我不能要求所有想测试安装 hadoop 的人。
def readFiles(fs: FileSystem,path: Path): String = {
val sb = new mutable.StringBuilder()
var br : BufferedReader =null
var line : String = ""
try{
if(fs.exists(path)){
if(fs.isFile(path)){
br = new BufferedReader(new InputStreamReader(fs.open(path)))
while ((line = br.readLine()) != null)
sb.append(line.trim)
} else {
throw new InvalidPathException(s"${path.toString} is a directory, please provide the full path")
}
}else {
throw new InvalidPathException(s"${path.toString} is an invalid file path ")
}
} catch {
case e: Exception => throw e
} finally {
if (br != null){
try {
br.close()
} catch {
case e: Exception => throw e
}
}
}
sb.toString
}
【问题讨论】:
-
如何模拟 Hdfs 文件系统 - 聪明人说不要模拟你不拥有的东西。您可能同意或不同意,购买肯定要考虑的东西。只需浏览一下您的代码 - 您到底要测试什么?
-
@user6910411 我将从文件中读取数据并将其与字符串进行比较。
-
@user6910411 如果我能够模拟 hdfs,我可以使用数据帧阅读器读取数据并验证它
标签: scala testing mockito hdfs scalatest