Specs2 Scala bug not evaluating strings to be the same

44 views Asked by At

I have the following spec2 test

import akka.testkit._
import akka.actor.ActorSystem
import com.github.nfldb.config.{NflDbApiActorSystemConfig, NflDbApiDbConfigTest}
import org.scalatest.MustMatchers
import org.specs2.mutable.Specification
import spray.testkit.Specs2RouteTest
import spray.routing.HttpService
import spray.http.StatusCodes._
import spray.json.DefaultJsonProtocol._
import spray.httpx.SprayJsonSupport._
import concurrent.duration._

/**
 * Created by chris on 8/25/15.
 */
class NflPlayerScoringSvcTest extends Specification with Specs2RouteTest  with NflPlayerScoringService
  with NflDbApiDbConfigTest with NflDbApiActorSystemConfig {
  import PlayerScoreProtocol.playerScoreProtocol
  implicit def actorRefFactory = actorSystem
  implicit def default(implicit system: ActorSystem) = RouteTestTimeout(new DurationInt(5).second.dilated(system))

  "NflPlayerScoringSvc" should {

    "return hello" in {
      Get("/hello") ~> nflPlayerScoringServiceRoutes ~> check {
        responseAs[String] must contain("Say hello")
      }
    }

    "calculate a player's score for a given week" in  {
      import PlayerScoreProtocol.playerScoreProtocol
      Get("/playerScore?playerId=00-0031237&gsisId=2015081551") ~> nflPlayerScoringServiceRoutes ~> check {
        val playerScore :  DfsNflScoringEngineComponent.PlayerScore = responseAs[DfsNflScoringEngineComponent.PlayerScore]
        println(playerScore.playerId == "00-0031237") //evaluates to true
        playerScore.playerId  must be ("00-0031237")
      }
    }

  }
}

As you can see in my comment, my println statement asking for the equivalence of playerScore.playerId == "00-0031237 evalutes to true. However on the next line, my test fails saying that

[error]    '00-0031237' is not the same as '00-0031237' (NflPlayerScoringSvcTest.scala:37)

How is this happening?

1

There are 1 answers

0
codejitsu On BEST ANSWER

Did you tried this:

playerScore.playerId  must beEqualTo("00-0031237")