En último lenguaje que decidí aprender fue Scala y siguiendo la política que mencioné en un post anterior, comencé programado un FooTest.
Al intentar hacer esto me encontré que Scala, a diferencia de Ruby, no viene con ningún framework de test incluido. Luego de investigar un poco encontré que hay más de una herramienta de test disponibles en la web. Finalmente decidí utilizar ScalaTest. En cuanto a herramienta de build ya sabía de la existencia de SBT, así que simplemente investigué cómo hacer que SBT ejecutara los tests escritos con ScalaTest. El resultado fue este proyectito.
A modo de comentario (valga la redundancia je!), el build.sbt lo escribiría de la siguiente manera:
(es necesario dejar un renglón en blanco entre cada linea de código si se está usando un versión de sbt < 0.13.7)
name := "foo"
version := "1.0"
scalaVersion := "2.10.4"
lazy val root = (project in file("."))
libraryDependencies += "org.scalatest" %% "scalatest" % "2.0" % "test"
Usar %% en lugar de % evita tene que poner el _2.10 o _2.11, dependiendo de la versión de scala que se esté usando, y lo resuelva automáticamente.
Adicionalmente especificaría la versión de sbt a usar, para lo cual hay que crear una carpeta project en el root del proyecto y dentro poner un archivo que se llame build.properties que contenga lo siguiente: sbt.version=0.13.5 (0.13.5 o la versión que se quiera).
Bienvenido al fantastico mundo de Scala (siempre y cuando no te metas con base de datos relacionales, particularmente no me gusta mucho lo que hay).
Saludos.
Gracias por la data.
Justamente acceso a base relacional es lo que sigue ¿que recomendas para eso?
La verdad que no mucho, antes estaba usando mongodb, ahora que estoy con MySQL fuí por el lado de Slick, ya que estaba más actualizado, o sea, es compatible con scala 2.11, cosa que otros que había visto no, como Squeryl, aunque fué hace unos meses, quizás cambió. De todas formas vengo trabajando más con Java y MsSQL, o sea usando Hibernate, JPA. Y el hecho de tener con Slick el id del objeto en lugar de tener automágicamente el objeto de forma lazy con JPA, está haciendo que me rompa un poco la cabeza.
Entiendo que con Active Record en Ruby, al igual que Slick, tenés solo el id, así que no te debería resultar chocante.
De hecho hay un proyecto scala-activerecord: https://github.com/aselab/scala-activerecord/tree/master/play2
Acá tengo un video de una charla que dió Josh Suereth en likedin sobre sbt: http://leonhardtdavid.wordpress.com/2014/03/28/sbt-simple-build-tool/
Gracias!!!