Size: a a a

2021 July 11

AK

Anton Krasnov in KotlinLangRu
Всем привет
Только  начинаю изучать корутины
Подскажите пожалуйста почему тут задачи выполняются последовательно а не в разных корутинах?
источник

BP

Bogdan Panchenko in KotlinLangRu
А чего им выполняется в разных. Почитайте про runBlocking. Также немного бессмысленно использовать корутины со стримами
источник

BP

Bogdan Panchenko in KotlinLangRu
Ну и да скоуп у вас бесмысленый (в саспенд функции)
источник
2021 July 12

IS

Ivan Sablin in KotlinLangRu
ребят привет! Какой самый элегантный выход можно тут найти.
Пролема такая, что FormattedDate - value class(String). При сборке для jvm это два одинаковых конструктора. Что можно предпринять?
источник

BP

Bogdan Panchenko in KotlinLangRu
FormattedDate- это что
источник

IS

Ivan Sablin in KotlinLangRu
источник

BP

Bogdan Panchenko in KotlinLangRu
ну вот inline class (value class  1.5) - в рантайме превращается в тип String (в вашем случае).

Обойти по идее можно сделав функцию вместо конструктора:
fun TimeRange(start: String, end: String) = ....
источник

BP

Bogdan Panchenko in KotlinLangRu
в stdlib  подобного полно
источник

IS

Ivan Sablin in KotlinLangRu
ну или экстеншнен для стринги тогда  уж
источник

IS

Ivan Sablin in KotlinLangRu
ну по красоте бы было конечно если через конструктор, но походу не получится никак
источник

BP

Bogdan Panchenko in KotlinLangRu
увы для конструктора нельзя повесит @JvmName
источник

IV

Ivan Vinogradov in KotlinLangRu
Переписать на статический метод:

TimeRange.fromString(…)
источник

IV

Ivan Vinogradov in KotlinLangRu
А лучше вообще удалить) Немного в нём пользы
источник

BP

Bogdan Panchenko in KotlinLangRu
+
источник
2021 July 13

AD

Anton Dutov in KotlinLangRu
Всем доброго дня
Недавно занялся юнит-тестированием
Такой вопрос
Как мне заглушить (замокать) вызов init() метода из тестируемого метода:

Например
val user = Users().apply { init() }

Пробовал через doNothing, не помогло, все равно при тесте выполняется init()
источник

GP

Grigoriy Polyakov in KotlinLangRu
Users должен быть spy объектом, уже на нем можно будет замочить данный метод(doNothing)
источник

AD

Anton Dutov in KotlinLangRu
Окей, попробую ещё раз, спасибо
источник

AD

Anton Dutov in KotlinLangRu
val spyUsers = spy(Users())
doNothing().’when’(spyUsers).init()

Не помогло
Все равно вызывается init() в трестируемом методе
источник

GP

Grigoriy Polyakov in KotlinLangRu
Чёт странное. Ты иницилизируешь метод и сразуже мочичь его?
источник

AD

Anton Dutov in KotlinLangRu
Не понял
Он вызывается в тестируемом классе, после инициализации объекта

val user = Users().apply { init() }
источник