我有一个Words
包,其中包含单词类型(Noun
,Verb
,Adjective
...)但是我导入Words._
并且我的IDE找到了以及每个班级,我都有这个错误:
Error:(11, 40) type mismatch;
found : Word (in Words)
required: Word (in <empty>)
val adj: Word = WordFactory.produce("big")
事情是,我的包裹中没有任何东西(在<empty>
包裹中)
我正在使用IntelliJ Idea CE。
这是我的测试:
test("Adjective") {
val expected: Adjective = Adjective("big", "big", "m", "sp")
val test: Word = WordFactory.produce("big")
assert(test == expected)
}
如果我澄清val test: Words.Word
我的测试失败了:
Adjective(big,big,m,sp) did not equal Adjective(big,big,m,sp)
ScalaTestFailureLocation: WordFactoryTests at (WordFactoryTests.scala:13)
Expected :Adjective(big,big,m,sp)
Actual :Adjective(big,big,m,sp)
Adjective
是一个案例类,所以使用相同的args它不能是不同的。
有关信息,我有其他测试(测试其他案例类,如Noun
),这些测试相同,但效果很好。
修改
问题似乎与scalatest无关,即使在主要问题上,我也有错误(使用<empty>
)。
这是我的档案Word.scala
:
package Words
abstract class Word() {
val correctWriting: String
val lemma: String
var currentWriting: String = correctWriting
def isCounterfeited: Boolean = this.currentWriting != this.correctWriting
def counterfeit()
}
和Adjective.scala
:
package Words
case class Adjective(correctWriting: String, lemma: String, gender: String, number: String) extends Word {
override def counterfeit: Unit = Counterfeiters.Adjective.counterfeit(this)
}
完整的代码位于my GitHub。
答案 0 :(得分:0)
最后我重命名了我的项目并解决了这个问题。奇怪的IDE的东西,我之前没有打包,并且包装中的重组破坏了一些东西 我你面临类似的问题试试你干净你的IDE!