¿De qué manera el marco BDD “especificaciones” para trabajar Scala?
Pregunta
Me acaba de empezar con la Scala, y me pregunto qué característica de idioma le permite hacer esto:
"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"
}
}
}
Eso es desde el pruebas unitarias para Kestrel .
¿Qué está pasando aquí? ¿Quiere decir que la clase "PersistentQueue" should
cadena Scala se ha ampliado con un método "debería", o es otra cosa que sucede aquí? Tenía una mirada rápida a través de la documentación Scala, pero no pude ver qué características del lenguaje están siendo utilizados para este ejemplo de código.
Solución
Parece que los métodos implícitos que se agregan a la clase String para mí. Este post tiene una demostración.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow