2010-11-16 9 views
10

Estoy aprendiendo Scala ahora. Vi que hay 2 frameworks de prueba allí, ScalaTest y Specs. Mi único problema es que aún no estoy a gusto con el lenguaje para decidir cuál es mejor. También estoy acostumbrado a escribir pruebas antes del código, por el momento no tengo una idea clara de cómo hacerlo en la programación funcional. Idealmente me gustaría aprender Scala de manera TDD, ¿hay algún recurso al respecto?learn Scala with TDD

Respuesta

7

Hay un koan funcional que podría ser algo que está buscando. Dick pared del Java Posse comenzó un proyecto github:

https://github.com/relevance/functional-koans/tree/scala

Usted necesita experto para iniciarlo a través mvn package.


Hay otro Koan:

http://www.scalakoans.org/

Gracias a @MikeHoss!

+0

este koan cosa en no muy clara para mí ...:) – Uberto

+0

@uberto, por lo que puedo deducir, los "koans funcionales" parecen ser ejercicios que puedes hacer para aprender programación funcional, por lo que te dan una prueba fallida y tienes que pasarla. ¿Es eso correcto, Michael? –

+0

Sí, correcto. Hay una configuración de proyecto con un montón de pruebas unitarias. Para progresar, debe cambiar la prueba de unidad que falla actualmente para que pase. Entonces la próxima prueba falla y tienes que aprender algo nuevo. La primera prueba unitaria es trivial: 'assert (false) // debe ser verdadero' –

1

Quizás esto te ayude. Es una solicitud similar hecha por otro miembro del desbordamiento de pila.

Unit testing Scala

+0

no hay torres reales allí también ... – Uberto

1

ScalaTest es el más destacado ricamente y flexible de los dos marcos.

Habiendo dicho eso ... Actualmente estoy a favor de las especificaciones, parecen estar haciendo un mejor trabajo al estar al día con las últimas versiones de Scala y la integración de IntelliJ también parece funcionar mejor.

Las especificaciones también tienen la ventaja, para ti, de tener una API más pequeña para aprender.

+0

Inmediatamente después de 2.8 salió ScalaTest 1.2 fue lanzado final, que funciona bien con Scala 2.8. Kevin de alguna manera no sabía que ScalaTest 1.2 funcionaba con Scala 2.8. ScalaTest 1.3, que también funciona con Scala 2.8, es el lanzamiento actual a partir del 20 de marzo de 2011. –

+0

En el momento en que escribí esta respuesta, recientemente había estado trabajando con una gran cantidad de 2.8 candidatos de lanzamiento, cuyas especificaciones estaban siguiendo muy de cerca . Todavía recuerdo la frustración de no poder actualizar un proyecto simplemente por una dependencia de ScalaTest. Desde entonces, ScalaTest comenzó a rastrear sus propias dependencias a través de Maven, por lo que las versiones rápidas deberían ser posibles y no veo que esto me afecte en el futuro (útil para saber, con 2.9.0 a punto de lanzar el candidato) –

2

Por lo tanto, marcos de prueba. Hay other questions sobre eso, aunque me gustaría señalar que también hay ScalaCheck. ScalaCheck no es tan completo como las especificaciones y ScalaTest, pero, por otro lado, tanto Specs como ScalaTest pueden integrarse con él.

Personalmente, preferiría ir con ScalaCheck, que probablemente sea muy diferente de los marcos de pruebas de unidad a los que está acostumbrado. Esta diferencia puede ser buena para evitar que realice pruebas de manera orientada a objetos.

Ahora, a la principal preocupación de su pregunta: ¿hay un tutorial de Scala similar a TDD? No conozco ninguno, aunque el answer acerca de functional koans parece acercarse a lo que desea.

+0

He encontrado scalacheck para ser más útil para un shakedown de bajo nivel de algoritmos y unidades individuales, pero no tan útil para BDD y especificaciones de alto nivel. –

+0

@Kevin ¡Entonces no está generando generadores correctamente! :-) –