Описание тега zio-test

ZIO Test - это библиотека тестирования с нулевой зависимостью, которая упрощает тестирование эффективных программ.
2 ответа

Как утверждать одно поле в типе ошибки?

Предположим, у меня есть такой код: final case class CustomException(errorCode: Int, id: UUID) extends Throwable val logic: ZIO[Any, Throwable, Unit] = ??? Я хочу использовать ZIO Test для проверки конкретного случая ошибки val checkForTimeout = tes…
30 дек '19 в 21:11
1 ответ

Как принудительно запустить тесты ZIO последовательно

Я хочу последовательно запустить два интеграционных теста. Как этого можно достичь в ZIO Test? Вот люкс: suite("Undeploy a Package")( testM("There is a Package") { PackageDeployer.deploy(pckg) *> // first deploy assertM(PackageUndeployer.undeploy…
08 янв '20 в 12:53
1 ответ

Как правильно проверять запланированные вызовы в ZIO Test

Я новичок в ZIO и ZIO Test, и я хотел бы протестировать службу планирования, которую я написал для ZIO v1.0.0RC17: Услуги: import zio.{RIO, Schedule} import zio.clock.Clock import zio.duration._ trait ModuleA { def moduleA: ModuleA.Service } object …
29 мар '20 в 13:22
1 ответ

Почему невозможно извлечь слои в переменной в ZIO Test

Предоставляя слои для моих тестов, я наткнулся на такое странное поведение, что невозможно извлечь слои в значении. Этот код компилируется: def spec: ZSpec[environment.TestEnvironment, Any] = suite("EnvironmentLoaderSuites")( testM("the Config is co…
10 апр '20 в 16:46
1 ответ

Как игнорировать набор или тест в ZIO Test?

Я не мог найти ничего о том, как игнорировать Suite или Test с помощью ZIO Test. Будь то в примере или в документации (https://zio.dev/docs/usecases/usecases_testing) Существует ignored в test package object: /** * Creates an ignored test result. */…
22 дек '19 в 22:23
1 ответ

Есть ли способ добавить описательное сообщение Assert в логический тест ZIO?

У меня есть пара Booleans Хочу протестировать, нравится assert(g8Exists, equalTo(true)) && assert(projectExists, equalTo(true)) && assert(testenvExists, equalTo(true)) ... В случае неудачи все, что я получаю, это: false did not satis…
03 янв '20 в 13:05
0 ответов

Совместное использование управляемых ресурсов в тестах (zio tests)

Я связываю HttpRouteи тестируем его. Это происходит внутриZManaged контекст. Но мне нужно use это для каждого теста, что очень неэффективно с точки зрения ресурсов. Есть ли способ запустить множество помеченных тестов внутри ZManaged контекст?
01 сен '20 в 01:27
2 ответа

Как расширить TestEnvironment теста ZIO

Я хочу протестировать следующую функцию: def curl(host: String, attempt: Int = 200): ZIO[Loggings with Clock, Throwable, Unit] Если бы среда просто использовала стандартные среды ZIO, например Console with Clock, тест будет работать из коробки: test…
03 фев '20 в 21:35
0 ответов

Мокинг функции с пустым списком параметров в ZIO Test

Я хочу поиздеваться над следующей функцией: def deployments(): Task[Seq[Deployment]] Мой envBuilder выглядит так: ZLayer.fromService(invoke => new processEngineService.Service { def deployments(): Task[Seq[Deployment]] = invoke(Deployments) } ) К…
04 май '20 в 19:51
7 ответов

Как проверить случай исключения с помощью zio-test

У меня есть следующая функция, которую я хочу протестировать: def people(id: Int): RIO[R, People] Эта функция возвращает людей, если для этого есть id, соотв. не работает, если нет, например: IO.fail(ServiceException(s"No People with id $id")) Счаст…
01 ноя '19 в 19:01
1 ответ

Мокинг любого значения в качестве входного параметра с помощью ZIO Test

Я издеваюсь над следующей функцией: def deploy(deployRequest: DeployRequest, mergeResults: Seq[MergeResult]): Task[Deployment] Для результата меня не волнуют вводы. Итак, мой вопрос, есть ли способ добиться этого с помощьюzio.test.mock. Что-то типа:…
01 май '20 в 14:05
1 ответ

"Тест использует время, но не опережает время теста" в ZIO Test

После переноса моего теста на RC18 я получаю следующее предупреждение, и тест зависает: Warning: A test is using time, but is not advancing the test clock, which may result in the test hanging. Use TestClock.adjust to manually advance the time. У ме…
08 апр '20 в 21:56
0 ответов

zio-logging ведет себя иначе при тестировании запланированных задач, чем на prod в ZIO

Я застрял в тестировании повторяемой задачи. Все работает, когда выполняется вне теста, но терпит неудачу в тестах. Похоже, что в тесте zio-logging ведет себя как-то иначе (как будто это "блокировка"). Когда я заменяю ведение журнала на вызовы консо…
07 апр '21 в 12:44
2 ответа

Как я могу утверждать, что Option содержит что-то в zio-test?

Я пытался assert(anOption)(contains("x")) Но это работает только для Iterables, таких как List или Seq.
30 апр '21 в 08:35
0 ответов

Расписание испытаний Zio не повторяется при настройке времени на часах испытаний

Я пытаюсь проверить логику, которую нужно повторять (с течением времени) Мой тестовый код выглядит так: val repeatSchedule = Schedule.fixed(1 second) && Schedule.recurs(10) // 10 times, 1 second each time val logic = for { now <- ContextM…
24 июн '21 в 13:04
0 ответов

Общий слой спецификаций

Я начал делать некоторые общие черты для zio-тестов, которые расширяют DefaultRunnableSpec. Но в конце этих тестов мне нужно добавить еще один общий код: override def spec = suite("XYZ")( ... ).provideCustomLayerShared(TestEnvironment.live >+>…
08 янв '21 в 08:13
1 ответ

Как использовать обычное время в ZIO-Test?

Во время работы над zio-spark мы не можем использовать гоночные эффекты в тестах, которые не используют zio.Clock. Эффекты не прерываются. Есть ли способ это исправить? package zio.spark.effect import zio._ import zio.test.TestAspect.timeout import …
05 мар '22 в 11:45
1 ответ

Метод ZIO Mock, который работает с дженериками

Я пытаюсь издеваться над службой, у которой есть общий метод, но я не могу понять, как определить эффект в макете. Может ли вообще работать общий эффект? Есть ли обходные пути? Сервис: object AService { type AService = Has[Service] trait Service { d…
16 янв '21 в 11:44
2 ответа

Zio утверждает подтип алгебраического типа данных

Данный алгебраический тип данных sealed trait Result case object Success extends Result case class MyFailure(details: String) extends Result Как утверждать в zio-testэто конкретное значение является Failureи его детали содержат определенную подстрок…
09 апр '21 в 20:10
0 ответов

Как я могу использовать внешнюю библиотеку Scala ZIO в конвейере Cloud Data Fusion?

Я загрузил библиотеку Jar для Zio по ссылке: https://jar-download.com/artifacts/dev.zio , но я не уверен, как я могу импортировать ее для создания своих конвейеров. Может ли кто-нибудь помочь мне в том же. Заранее спасибо.