내가 가지고 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를 사용하고 있습니다. 내가 val test: Words.Word
내 테스트가 실패 명확히 경우
test("Adjective") {
val expected: Adjective = Adjective("big", "big", "m", "sp")
val test: Word = WordFactory.produce("big")
assert(test == expected)
}
:
이
내 테스트입니다 그냥 다른 수 없습니다 같은 인수로 있도록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
는 경우 클래스입니다 ..
자세한 내용은 동일하지만 잘 작동하는 다른 테스트 (Noun
과 같은 다른 사례 클래스 테스트)가 있습니다.
편집 :
문제가도 메인에, scalatest에 링크 것 같다하지 않습니다, 나는 (<empty>
와) 오류가 있습니다.
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에
이
내 파일Word.scala
입니다.
스칼라 테스트 평등이 복잡한 주제라고 생각합니다. 케이스 클래스 비교를 사용합니다. 대신 ===을 (를) 사용해 볼 수 있습니까? – Suma
불행히도'==='는 아무 것도 바뀌지 않습니다, 어쨌든 좋은 시도하십시오. 다른 테스트 스위트를 살펴볼 수 있는데, 지금은'FunSuite'를 사용하고 있습니다. – VNourdin
코드를 더 이상 보지 않아서 두려운 것이므로 조언을하기가 어렵습니다. 형용사를 임대 할 수 있습니까? 문제의 출처를 최소한으로 줄여 여기에 게시 할 수 있도록하십시오. – Suma