Vladimir
тут обе функции это два апдейта стороннего апи, но это не особо важно) важна сама концепция - мне кажется что такой тест это просто дублирование кода и должно проверяться черз e2e
Vladimir
но мб я не прав и тру вей это замокать обе функции и проверить порядок
Ilya
Мне пока не удаётся выработать ощущение, которое будет говорить, на каком уровне лучше протестировать код. Постоянно проекты, где тесты на уровне апи и фронта.
Ilya
Но логика подсказывает, что надо тестировать на том уровне, где это проще сделать. И вот так сходу я не представляю себе e2e теста, которым легко проверить порядок обращений к сторонним апи. Разве что запросы все перехватывать и смотреть порядок?
Ilya
А по сайд-эффектам может быть непонятна сразу причина ошибки, например.
Shub
А что если они станут асинхронные?
Shub
Hog
Ребяты! А мне тут вопрос про мой пример с элмишбриджем задали... я уж и забыл всё:))) @VagifAbilov не ответишь? :)
Shub
Проще говоря, не надо это тестить, потому что вы докатитесь до тестирования арифметики - а вдруг функция вместо сложения вычитает там?
Romɑn
https://twitter.com/freezydorito/status/1306255218150121476?s=09
Shub
Лол, ну не знаю, может быть наличии жизни?
Ilya
Ayrat
TIL, 95.5% игроков в CK3 играют неправильно
Ayrat
ну т.е. рили, как можно НЕ получить trait inbred если играть правильно
Vagif
Vagif
👍
Vasiliy
Пролететь на велосипеде между двумя девятиэтажками смог студент из Челябинской области 😨 Не пытайтесь повторить увиденное. Расстояние между зданиями — 6 метров! К трюку парень готовился целый месяц ☝🏻
Андрей
Андрей
как из 10 секунд работы сделать неделю челочасов
Vladimir
Vladimir
плюс покрытие тестами увеличится
Vagif
Говорю это как в прошлом unit test junkie, доводивший с высунутым языком test code coverage до 100 процентов, но это было в прошлом.
Vagif
плюс покрытие тестами увеличится
Это опасный аргумент. Покрытие тестами не должно влиять на приоритет работ, а значит его вообще не нужно учитывать в метриках проекта.
Doge
Если мы при этом говорим про раст, то там вообще зашибись из-за афинных типов
Doge
Т.к. не будет возможности вызвать b два раза т.к. EvidenceOfA нельзя копировать или клонировать
Doge
И оно будет замувлено в b
Vladimir
Vladimir
Ayrat
Doge
а как обеспечивается что EvidenceA нельзя создать вне функции a?
В принципе тоже самое можно сделать и через обычные универсальные типы, но тогда сигнатура функции будет чуть другой:
fn f<A, B, E>(ev: E, a: impl Fn(E) -> A, b: impl Fn(A) -> B): B
Тут опять из-за параметричности и не копируемости A, E и B тело у функции может быть только одно, а именно: b(a(ev))
Vladislav
Doge
Да, чуть подправил код, нужно ещё принимать какой-то некопируемый evidence, чтобы обеспечить, что a вызывается тоже только один раз
Ayrat
Детей режешь
Я вот начал за Ирландию, у них с самого начала доступна выборная форма наследования. Очень удобно!
Ayrat
Одновременно было штук 15 выборов
Vladislav
Vladislav
пока так
Ayrat
В плен его не возьмут, так как он умрет а первом раунде без retreat
Vladislav
играть случайно за Киев начал, там какие-то норвежцы жили
Vladislav
И называлось по-другому
Nikolay
Это что-то по типу mount and blade?
Mark
аргумент был такой - если кто-то поменяет порядок, то два раза подумает вместо одного
Такое ощущение, что порядок там неважен. Был бы важен, был бы результат первой функции, который используется во второй. Если же там настолько важный сайд-эффект, то тогда лучше его сделать явным. Любой лишний тест усложняет систему и делает тестирование неустойчивым. Поменяешь две строки в коде, и надо переписывать 30 тестов. Я бы писал тесты там, где есть логика. Ветвления, циклы, рекурсия, вот это вот всё.
Nikolay
А тут Айрат живет, там выше Ireland видимо
Vladislav
Roman
Ayrat
Ayrat
И они выращивают сверхлюдей путём скрещивания братьев и сестер
Ayrat
Первые 5 поколений будут inbred дебилы, да.
Ayrat
Но потом!!!1
Vladimir
Такое ощущение, что порядок там неважен. Был бы важен, был бы результат первой функции, который используется во второй. Если же там настолько важный сайд-эффект, то тогда лучше его сделать явным. Любой лишний тест усложняет систему и делает тестирование неустойчивым. Поменяешь две строки в коде, и надо переписывать 30 тестов. Я бы писал тесты там, где есть логика. Ветвления, циклы, рекурсия, вот это вот всё.
да, функции вызываются только ради сайд эффектов, про сделать явным не очень понял, как это поможет решить вопрос с тестами
Anatoly
Vladislav
Vladislav
да я понял что это они
Ayrat
к слову, с англией та же история
Ayrat
и ирландией
Anatoly
Ayrat
уикиниги хорошо набигали, да
Vladimir
Anatoly
там есть один король сицилийский, у которого сын стал императором ВРИ, а дочь - императрицей византии
Ayrat
Ayrat
Vladislav
Ayrat
вот пока что эпоха викингов в CK3 слабо сделана. в CK2 всё лучше, там больше flavor
Ayrat
вообще в СК2 больше фансервиса. Но это дело времени
Ayrat
СК3 прям достойно стартанула
Ayrat
виден потенцевал во всех сферах