
Maxim
24.09.2017
16:46:51
я считаю что тут 2 необходимо вещи сделать:
1. Использовать kotlin extensions
2. !! заменить на ?

Quantum Harmonizer
24.09.2017
16:47:05

Google

Quantum Harmonizer
24.09.2017
16:49:17
см. пункт 1
использование extensions спрячет логическую ошибку, и человек сделает неправильно уже в другом месте

Maxim
24.09.2017
16:50:11
Что бы делать все нулабельным и не проверять на null у меня java есть
там как раз этот вариант: https://t.me/kotlin_lang/34395

Quantum Harmonizer
24.09.2017
16:52:25

Maxim
24.09.2017
16:55:31

Quantum Harmonizer
24.09.2017
16:56:45

DasModell
24.09.2017
20:13:45
c

Maxim
25.09.2017
06:17:08
Я не говорил, что !! производит проверку на null.
Простите, в определенный момент я потерял нить повествования.
В таком случае я делаю вывод, что рациональнее всего использовать Kotlin Android Extensions и к объектам классов вью обращатсья без
!!
или
?
Тогда если объект не инициализирован мы получим RuntimeException и сразу же определим место ошибки. Я верно все понял?

You
25.09.2017
06:23:33
А разве в таком случае он может оказаться неинициализированным?
Он же типа датабиндинга
Внешне
Раз - и у тебя переменные с именами айдишников

Google

DarkMentat
25.09.2017
06:27:54
Он падает в рантайме, если не то заимпортил
Но нуллом вроде быть не может

Maxim
25.09.2017
06:30:01
Ну, как минимум при обращении, например, во фрагменте в onCreate, до инициализации вью

Quantum Harmonizer
25.09.2017
06:36:10

Va
25.09.2017
08:33:24
я могу как-то у дата-класса в конструкторе создать переменную, у которой будет private set ?

Igor
25.09.2017
08:41:58
А в обычном классе это можно?

Quantum Harmonizer
25.09.2017
08:49:03
нет, в обычном классе для такого случая свойство объявляется в теле

Va
25.09.2017
10:57:21
для обычного класса я могу без печали сделать кастомный конструктор, а дата-классу нужен обязательно не пустой дефолтный
что ж, жаль

Quantum Harmonizer
25.09.2017
12:16:49

Nikita
25.09.2017
12:43:37
по поводу вчерашнего вопроса с моканьем лямбд в качестве аргументов задал вопрос, гляньте, пожалуйста, может кто сталкивался или есть решения лучше для тестирования
https://ru.stackoverflow.com/questions/722922/%D0%9A%D0%B0%D0%BA-%D0%B7%D0%B0%D0%BC%D0%BE%D0%BA%D0%B0%D1%82%D1%8C-%D0%B4%D0%BB%D1%8F-%D1%82%D0%B5%D1%81%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F-%D0%BC%D0%B5%D1%82%D0%BE%D0%B4-%D1%81-%D0%BD%D0%B5%D1%81%D0%BA%D0%BE%D0%BB%D1%8C%D0%BA%D0%B8%D0%BC%D0%B8-%D0%BB%D1%8F%D0%BC%D0%B1%D0%B4%D0%B0%D0%BC%D0%B8

Quantum Harmonizer
25.09.2017
12:49:09

DarkMentat
25.09.2017
12:49:16
это типа должна была быть ссылка на вопрос или ты сам себе ответил, где лучше спрашивать?

Nikita
25.09.2017
12:50:32
лол, ссылку некорректную вставил, поправил

Quantum Harmonizer
25.09.2017
12:55:41

Арсений
25.09.2017
12:56:18
Всем привет, кто что предпочитает, использовать const или оборачивать в companion object? И для каких случаев?

Quantum Harmonizer
25.09.2017
12:56:29

Google

Nikita
25.09.2017
12:57:26

Арсений
25.09.2017
12:57:31
а как она может не принадлежать какому-то классу?

Quantum Harmonizer
25.09.2017
12:57:54
еквивалент when
> Сам метод интерактора вызывается с null параметрами, хотя там точно есть значения workerId и DeviceCondition и они равны именно тем что указаны в методе тестирования.
Выглядит как взаимоисключающие параграфы.

Арсений
25.09.2017
12:59:25
разве что писать отдельно функцию без класса и создать там приватную константу, но это единичные случаи

Quantum Harmonizer
25.09.2017
13:00:30

Nikita
25.09.2017
13:00:46

Quantum Harmonizer
25.09.2017
13:01:35

Руслан
25.09.2017
13:01:50
@abbath0767 я в чате пытался тебя раскрутить на то чтобы ты написал минимальный пример, на стековерфлоу откоментил, люди высказались и наставили минусов. Сделай https://stackoverflow.com/help/mcve и я уверен, что твоя проблема сразу решится

Александр
25.09.2017
13:02:16
добрый день,кто нибудь встречался с таким на студии 3.0 бета 6

Nikita
25.09.2017
13:02:17

Александр
25.09.2017
13:03:07
студия 3.0 бета 6 не видит Котлин,может кто нибудь что нибудь посоветовать?

Руслан
25.09.2017
13:03:14
Minimal, Complete, and Verifiable

Nikita
25.09.2017
13:06:32
class A(val b : B ) {
var c: String = ""
fun a(value: Int) {
b.doSomething(value,
{
c = it + " result good"
}, {
c = it + " result bad"
})
}
}
class B {
fun doSomething(
value: Int,
good: (String) -> Unit,
bad: (String) -> Unit) {
if (value != 0) {
good.invoke(value.toString())
} else {
bad.invoke("value must be not zero!")
}
}
} Я постарался максимально просто. Тут указан, как мне показалось, минимум нужной информации. Может что то еще стоит добавить для того что бы понятна была суть проблемы? Я естественно готов идти на встречу, если пойму, что именно не так то)

Quantum Harmonizer
25.09.2017
13:07:31

Nikita
25.09.2017
13:07:57

Quantum Harmonizer
25.09.2017
13:09:36

Google

Nikita
25.09.2017
13:10:00
класс B замоканный
и этим ты тестируешь класс B в т.ч.. Нужно именно юнит тест для метода а класса А, где зависимость от класса B естественно замокана.

Руслан
25.09.2017
13:22:18
Вот тебе юнит тест A

Nikita
25.09.2017
13:26:51
разве тут не проверяется все таки b?

Руслан
25.09.2017
13:27:05
у нас тест на A
что в теле метода A просходит?
ничего!
ну почти, делегируется вызов
ну вот мы и проверили что он делегировался
вообще в лямбдах менять состояние такая себе идея, т.к. такой код тяжело тестировать. лучше бы возвращал объект из метода doSomething

Nikita
25.09.2017
13:28:20
в методе а мы в зависимости от вызванной лямбды в методе b присваиваем значение с

Руслан
25.09.2017
13:28:45
ну вот, это плохо
верни объект и поменяй значение c

Nikita
25.09.2017
13:28:58
вот я прихожу к мнению что в моем кейсе - это плохо и нужно менять структуру)
верни объект и поменяй значение c
все бы было ничего, но там асинхронный метод, до перехода на котлин и последующего рефакторинга место имело быть обыкновенный коллбек интерфейс

Lev
25.09.2017
13:31:13
Есть какая то хитрость в подключении котлин либы к котлин js?

Руслан
25.09.2017
13:31:16
ну а метод b как раз таки вот так и тестируется
не говоря уже о корутинах

Nikita
25.09.2017
13:32:18
метод b проблем нет тестироватЬ, я не спорю.

Google

Nikita
25.09.2017
13:33:47

Руслан
25.09.2017
13:35:12
в джаве кстати напрямую нельзя менять состояние из лямбды, так что c не поменял бы. Зато менять c.serProp() никто не запрещает.
Просто подумал сначала что в джаве бы так и не написал, но потом понял что все возможно

Maxim
26.09.2017
07:55:14

Boris
26.09.2017
07:55:44
Перешли на другую нумерацию версий
Это типа 1.1.5-0
Чтобы в нпм с такой версий можно было попасть

Maxim
26.09.2017
07:56:55
Ок, спасибо