/ błąd / scala specs2: anon nie jest równy scala.collection.immutable - scala, testowanie, specs2

błąd scala specs2: anon nie jest równy scala.collection.immutable - scala, testing, specs2

Przeprowadzam następujący test

Idea.findById(1).get.tags must equalTo(List[String]("internet, tecnología"))

i otrzymuję następujący błąd

[info] Idea.tags should
[error] x should retrieve a list of tag names for the idea
[error]    "internet, tecnología": anon is not equal to "internet, tecnología": scala.collection.immutable.:: (IdeaTagSpec.scala:42)

to jest metoda, którą próbuję przetestować

lazy val tags: List[String] = {
Tag.findByIdea(this).map(_.name).toList
}

Mógłbym rozwiązać ten brzydki hack

( Idea.findById(1).get.tags.toString
must equalTo(List[String]("internet, tecnología").toString)
)

Ale jestem pewien, że jest lepszy sposób, aby to zrobić ...

-- EDYTOWAĆ --

przepraszam, to był głupi błąd z mojej strony (zamiast tego powinien być List („internet”, „tecnologia”))

w każdym razie komunikat o błędzie był dość mylący, dlatego zostawiam to pytanie tutaj ...

Odpowiedzi:

1 dla odpowiedzi № 1

Sytuacja ulegnie poprawie w następnej wersji specs2. Jeśli wypróbujesz specs2-1.12.3-SNAPSHOT, otrzymasz:

List("1, 2, 3") must_== List("1", "2", "3")

"List("1, 2, 3"): scala.collection.immutable.$colon$colon[java.lang.String]"
is not equal to
"List("1", "2", "3"): scala.collection.immutable.$colon$colon[java.lang.String]"

Różnica cytatów wokół każdego elementu powinna pomóc, a jeśli typy elementów są różne, otrzymasz:

List(1, 2, 3) must_== List("1", "2", "3")

"List("1", "2", "3"): scala.collection.immutable.$colon$colon[java.lang.Integer]"
is not equal to
"List("1", "2", "3"): scala.collection.immutable.$colon$colon[java.lang.String]"

I wreszcie, w przypadku „normalnego” przypadku:

List(1, 2, 3) must_== List(3, 2, 1)

List(1, 2, 3) is not equal to List(3, 2, 1)