2017-11-28 11 views
1

내가 가지고 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입니다.

+0

스칼라 테스트 평등이 복잡한 주제라고 생각합니다. 케이스 클래스 비교를 사용합니다. 대신 ===을 (를) 사용해 볼 수 있습니까? – Suma

+0

불행히도'==='는 아무 것도 바뀌지 않습니다, 어쨌든 좋은 시도하십시오. 다른 테스트 스위트를 살펴볼 수 있는데, 지금은'FunSuite'를 사용하고 있습니다. – VNourdin

+2

코드를 더 이상 보지 않아서 두려운 것이므로 조언을하기가 어렵습니다. 형용사를 임대 할 수 있습니까? 문제의 출처를 최소한으로 줄여 여기에 게시 할 수 있도록하십시오. – Suma

답변

0

마지막으로 프로젝트의 이름을 변경하고이 문제를 해결했습니다. 이상한 IDE 물건, 전에 패키지없이 일하고 있었고, 패키지의 재편성이 무언가를 망 쳤어.
나는 똑같은 문제에 직면 해있다.