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"