TADP


Instalación de IDE y otras guías

Intellij

Instalación

  1. Asegurate de tener instalada la JDK de Java 8 (o superior)
    • En la línea de comandos corré javac -version y asegurate de ver javac 1.8.___ (o superior).
    • Si no tenés la versión 1.8 o superior, instalá la JDK.
  2. Luego, descargá e instalá Intellij community edition
  3. Luego de iniciar Intellij, podés descargar e instalar el plugin de Scala:
    • File -> Settings -> Plugins -> buscar scala -> Install

      Plugins

  4. Reiniciar el ide para que se apliquen los cambios

Más detalles y opciones en la página de scala.

Importar el proyecto sbt

  1. Clonar el proyecto de github correspondiente a tu grupo
  2. En intellij: File -> Open -> doble click en build.sbt

    Open project

  3. Click en Open as Project

    Open as project

Para crear un proyecto desde cero, referirse a la página de scala (con sbt y sin sbt).

Escribiendo código scala

  1. En el panel Project ubicado a la izquierda, expandí {tu proyecto} -> src -> main -> scala -> click derecho -> New -> Package
  2. Nombrar el package domain
  3. Click derecho sobre domain -> New -> Scala class -> nombrarla Persona

    Open as project

  4. Cambiar el código a lo siguiente:
package domain

class Persona (var edad: Int) {
  def cumpliAnio = {
    edad += 1
  }
}

Tests con ScalaTest

  1. Agregar (o verificar que exista) la dependencia de ScalaTest en build.sbt
     libraryDependencies ++= Seq(
       "org.scalatest" %% "scalatest" % "3.2.9" % "test"
     )
    
  2. Si recibís la notificación “build.sbt was changed”, seleccionar auto-import.
  3. Estas dos acciones van a producir que sbt descargue la biblioteca ScalaTest.
  4. Esperá que la sincronización de sbt termine; de otra manera, intellij no va a reconocer el código de ScalaTest y el proyecto no va a compilar.
  5. En el panel Project ubicado a la izquierda, expandí {tu proyecto} -> src -> test -> scala -> click derecho -> New -> Package
  6. Nombrar el package domain
  7. Click derecho sobre domain -> New -> Scala class -> nombrarla PersonaTest
  8. Reemplazar el código por
     package domain
        
     import org.scalatest.freespec.AnyFreeSpec
        
     class PersonaTest extends AnyFreeSpec {
       "cuando una persona cumple años la edad debería ser 2" in {
         val persona = new Persona(1)
         persona.cumpliAnio
         assert(persona.edad == 2)
       }
     }
    
  9. En el código, click derecho en PersonaTest y seleccionar Run 'PersonaTest'. Podés verificar el resultado de los test en el panel de abajo:

    Open as project

Más detalles acá.