Scala инструментарий

Тестирование с помощью MUnit

Language

MUnit — легковесная библиотека для тестирования. Она предоставляет единый стиль написания тестов, который можно быстро освоить.

Несмотря на свою простоту, MUnit обладает такими полезными функциями, как:

  • утверждения (assertions) для проверки поведения программы,
  • фикстуры (fixtures), чтобы гарантировать, что тесты имеют доступ ко всем необходимым ресурсам,
  • поддержка асинхронности для тестирования параллельных (concurrent) и распределённых приложений.

MUnit создаёт полезные отчёты об ошибках с указанием различий и местоположения в исходном коде, что помогает быстро понять причины сбоев.

Тестирование является важной частью любого процесса разработки программного обеспечения, так как оно помогает находить ошибки на ранних этапах, улучшает качество кода и облегчает совместную работу.

Вы можете запросить весь набор инструментов одной командой:

//> using toolkit latest

MUnit, будучи тестовым фреймворком, доступен только в тестовых файлах: файлах в каталоге test или тех, которые имеют расширение .test.scala. Подробнее о тестовой области (test scope) см. в документации Scala CLI.

В качестве альтернативы вы можете запросить только определенную версию MUnit:

//> using dep org.scalameta::munit:1.1.0

В файле build.sbt вы можете добавить зависимость от toolkit-test:

lazy val example = project.in(file("."))
  .settings(
    scalaVersion := "3.4.2",
    libraryDependencies += "org.scala-lang" %% "toolkit-test" % "0.7.0" % Test
  )

Здесь конфигурация Test означает, что зависимость используется только исходными файлами в src/test.

В качестве альтернативы вы можете запросить только определенную версию MUnit:

libraryDependencies += "org.scalameta" %% "munit" % "1.1.0" % Test

В файле build.sc вы можете добавить объект test, расширяющий Tests и TestModule.Munit:

object example extends ScalaModule {
  def scalaVersion = "3.4.2"
  object test extends Tests with TestModule.Munit {
    def ivyDeps =
      Agg(
        ivy"org.scala-lang::toolkit-test:0.7.0"
      )
  }
}

В качестве альтернативы вы можете запросить только определенную версию MUnit:

ivy"org.scalameta::munit:1.1.0"

Contributors to this page: