我正在尝试制作自己的自定义CSV阅读器。我正在使用带有sbt和specs2测试框架的IntelliJ IDEA 14。
我在src/main
中声明的课程如下:
import java.io.FileInputStream
import scala.io.Source
class CSVStream(filePath:String) {
val csvStream = Source.fromInputStream(new FileInputStream(filePath)).getLines()
val headers = csvStream.next().split("\\,", -1)
}
src/test
中测试文件的内容如下:
import org.specs2.mutable._
object CSVStreamSpec {
val csvSourcePath = getClass.getResource("/csv_source.csv").getPath
}
class CSVStreamSpec extends Specification {
import CSVStreamLib.CSVStreamSpec._
"The CSV Stream reader" should {
"Extract the header" in {
val csvSource = CSVStream(csvSourcePath)
}
}
}
build.sbt
文件包含以下内容:
name := "csvStreamLib"
version := "1.0"
scalaVersion := "2.11.4"
libraryDependencies ++= Seq("org.specs2" %% "specs2-core" % "2.4.15" % "test")
parallelExecution in Test := false
我输入测试时遇到的错误如下:
[error] /Users/raiyan/IdeaProjects/csvStreamLib/src/test/scala/csvStreamSpec.scala:18: not found: value CSVStream
[error] val csvSource = CSVStream(csvSourcePath)
[error] ^
[error] one error found
[error] (test:compile) Compilation failed
[error] Total time: 23 s, completed 30-Dec-2014 07:44:46
如何在测试文件中使CSVStreamSpec类可以访问CSVStream类?
更新
我在命令行中使用sbt尝试了它。结果是一样的。
答案 0 :(得分:2)
您忘记了new
关键字。没有它,编译器会查找名为CSVStream
的伴随对象,而不是类。由于没有,它抱怨。添加new
即可。