Comment le cadre BDD « spécifications » pour Scala travail?
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.
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