我有一个
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)
形容词
作为参考,我还有其他测试(测试其他用例类,如
名词
)它们是相同的,但效果很好。
问题似乎与scalatest无关,即使在main中,我也有错误(与
<空(>);
).
这是我的文件
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
.