我有以下结构,其中我有一个
如果我去掉默认的it,它就起作用了...
trait DataServiceLocalImpl extends DataService {
override lazy val dataService = DataComponentLocalImpl
}
object DataComponentLocalImpl extends DataComponent {
def getData(element:String):String = GetStuffFromFile(element)
}
trait DataService {
val dataService: DataComponent
}
trait DataComponent {
def getData(element:String):String
}
GetStuffFromFile会从磁盘上读取文件一次(我只想要一次,因此使用对象),创建一个映射,然后返回元素的值。
这全部都是在Play Framework 2.3环境中完成的,应用程序也可以正常工作。但是当我在测试中将其用作隐式时,我会收到以下错误:
java.lang.NoClassDefFoundError:无法初始化类DataComponentLocalImpl
测试套件:
class AutoCompleteSpec extends PlaySpec with Mockito with OneAppPerSuite {
val resource = new DataServiceLocalImpl {}
implicit val dataService = resource.dataService
}
如果我去掉默认的it,它就起作用了...