我正在运行以下测试
Idea.findById(1).get.tags must equalTo(List[String]("internet, tecnología"))
我收到以下错误
[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)
这是我试图测试的方法
lazy val tags: List[String] = {
Tag.findByIdea(this).map(_.name).toList
}
我可以用这个丑陋的黑客解决它
( Idea.findById(1).get.tags.toString
must equalTo(List[String]("internet, tecnología").toString)
)
但我确信有更好的方法可以做到这一点......
- 编辑 -
抱歉,这是我的一个愚蠢的错误(它应该是列表(“互联网”,“tecnologia”)而不是)无论如何,错误信息非常误导,这就是为什么我要在这里留下这个问题......
答案 0 :(得分:1)
下一个specs2版本将改善这种情况。如果您试用specs2-1.12.3-SNAPSHOT,您将获得:
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]'
每个元素的引号差异应该有所帮助,如果元素的类型不同,你会得到:
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]'
最后,对于一个“正常”的案例:
List(1, 2, 3) must_== List(3, 2, 1)
List(1, 2, 3) is not equal to List(3, 2, 1)