Resource? В смысле без Resource получаются милые тесты со StateT (куда вместо F можно запихнуть Try или Either), но StateT не поддерживает Bracket, как я понимаю. Тестируют на SyncIO + Ref? Или какое-нибудь извращение делают типа StateT[SyncIO, S, *]? Или свою реализацию Bracket делают?
IO + unsafeRunSync в конце
Как-то неклассно :(
Целый IO в тестах отдавать туда где, в принципе, ничего кроме Monad и ресурса не нужно.
Так а что плохого то?
в мюните есть целый бизнес сют для этого
можно линк для незнакомых с мюнитом
https://github.com/typelevel/munit-cats-effect
Злой программист внутри меня может не меняя (и не сломав) тестов сломать логику просто используя возможности IO.
я лично отказался от такой идеи некоторое время назад, когда понял, что может появиться условный Fire в зависимостях и придется в тестах менять все с изеров на ио обратно
ну так если внутри сущности тфной можно использовать возможности ИО, то это с сущностью чет не так
Если у тебя сам код в терминах эфдырки, то ты не сможешь ничего сломать используя более широкий эффект
звучит как будто кто то пишет тесты 🙂
юзаем StateT[Coeval, S, *] там где необходимы точные снэпшоты мира. руками написали только Parallel.identity
Coeval - это SyncIO?
monix.eval.Coeval
Довольно тоже мощный эффект 😐
Библиотека растроила. Какой же это munit-cats-effect. Там cats-effect иерархией и не пахнет. Я бы назвал эту библиотеку munit-cats-io. 😢
Ех, щас бы кетс ио отдельной либой
да там три файла обертки
В версии 3 так и будет. Тайпклассы отдельно, ио отдельно.
Они ж писали в дизайн-ишье, что не будет так? Передумали?
Уже RC2, а ты посмотреть не можешь
Жду 3.0.0 14 марта
ну можно открыть, сейчас есть kernek, std и core
Обсуждают сегодня