Question

Je viens juste de commencer avec Scala, et je me demande quelle fonctionnalité de langue vous permet de faire ceci:

"PersistentQueue" should {
  "add and remove one item" in {
    withTempFolder {
      val q = new PersistentQueue(folderName, "work", Config.fromMap(Map.empty))
      q.setup

      q.length mustEqual 0
      q.totalItems mustEqual 0
      q.bytes mustEqual 0
      q.journalSize mustEqual 0

      q.add("hello kitty".getBytes)

      q.length mustEqual 1
      q.totalItems mustEqual 1
      q.bytes mustEqual 11
      q.journalSize mustEqual 32

      new String(q.remove.get.data) mustEqual "hello kitty"

      q.length mustEqual 0
      q.totalItems mustEqual 1
      q.bytes mustEqual 0
      q.journalSize mustEqual 33

      q.close
      dumpJournal("work") mustEqual "add(11:0:hello kitty), remove"
    }
  }
}

C'est du tests unitaires Kestrel.

Qu'est-ce qui se passe ici? Est-ce que "PersistentQueue" should signifie que la classe chaîne Scala a été étendue avec un « devrait » méthode, ou se passe quelque chose d'autre ici? J'ai eu un coup d'œil rapide à travers la documentation Scala mais ne pouvait pas voir quelles caractéristiques linguistiques sont utilisées pour cet exemple de code.

Était-ce utile?

La solution

On dirait que les méthodes implicites ajoutés à la classe String pour moi. Ce poste a une démonstration.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top