Size: a a a

Elm Lang сообщество разработчиков

2020 May 28

_:

_Ryner' :: IO ❄️ in Elm Lang сообщество разработчиков
Там никто сейчас ничего пока не делает
источник

GP

Gleb Patsiia in Elm Lang сообщество разработчиков
Ага в выхи глянул бы
источник

DK

Denis Krivosheev in Elm Lang сообщество разработчиков
Вообще довольно прикольно
источник

MP

Max P in Elm Lang сообщество разработчиков
Всем привет.
Когда я пишу тест, и мне нужно что-то из другого модуля, получается это "что-то" я должен указать в exposing. И когда это "что-то" только ради теста exposing, кажется не очень красиво. Раньше можно было сразу понять, что модуль выдает наружу, а что нет. А теперь получается, что наружу он выдает не только то, что нужно для работы приложения, но и для теста.

не кажется проблемой, но может есть какой-то иной вариант?)
источник

RT

Roman Truschev in Elm Lang сообщество разработчиков
Может это и тестировать на надо ?
источник

DK

Denis Krivosheev in Elm Lang сообщество разработчиков
Max P
Всем привет.
Когда я пишу тест, и мне нужно что-то из другого модуля, получается это "что-то" я должен указать в exposing. И когда это "что-то" только ради теста exposing, кажется не очень красиво. Раньше можно было сразу понять, что модуль выдает наружу, а что нет. А теперь получается, что наружу он выдает не только то, что нужно для работы приложения, но и для теста.

не кажется проблемой, но может есть какой-то иной вариант?)
Есть два варианта. Первый это тестировать не напрямую а опосредованно, то есть вся приватная функциональность должна тестироваться путём вызова публичной. По мне это такой «базовый» вариант
Второй вариант это дробить функциональность на более крупные блоки и иметь один модуль «сборщик», который реэкспозит только глобально публичную функциональность. Таким образом внутри блока многие вещи становятся бубличны и доступны для теста, а снаружи они все ещё приватны
источник

DK

Denis Krivosheev in Elm Lang сообщество разработчиков
Ещё можно попробовать писать тесты прямо в том же модуле... такой подход раста... но этого я сам не пробовал
источник

DK

Denis Krivosheev in Elm Lang сообщество разработчиков
Denis Krivosheev
Ещё можно попробовать писать тесты прямо в том же модуле... такой подход раста... но этого я сам не пробовал
По идее три шейкер тут должен отработать и убрать все лишнее... но это загрязняет апи модуля конечно
источник

DK

Denis Krivosheev in Elm Lang сообщество разработчиков
Но мне лично очень не нравится открывать кишки модуля только из-за теста... некрасиво это и опять таки загрязняет апи
источник

MP

Max P in Elm Lang сообщество разработчиков
Denis Krivosheev
Есть два варианта. Первый это тестировать не напрямую а опосредованно, то есть вся приватная функциональность должна тестироваться путём вызова публичной. По мне это такой «базовый» вариант
Второй вариант это дробить функциональность на более крупные блоки и иметь один модуль «сборщик», который реэкспозит только глобально публичную функциональность. Таким образом внутри блока многие вещи становятся бубличны и доступны для теста, а снаружи они все ещё приватны
Спасибо. Интересно. Может найдутся примеры по этим 2м вариантам?
источник

DK

Denis Krivosheev in Elm Lang сообщество разработчиков
Max P
Спасибо. Интересно. Может найдутся примеры по этим 2м вариантам?
Я назвал 3))
источник

MP

Max P in Elm Lang сообщество разработчиков
Denis Krivosheev
Я назвал 3))
Третий - это писать тесты в том же модуле?) это уже было следующее сообщение :)
источник

DK

Denis Krivosheev in Elm Lang сообщество разработчиков
Ну первый вариант тривиальный. Просто тестируй публичные функции которые используют приватные, которые нужно протестить
источник

DK

Denis Krivosheev in Elm Lang сообщество разработчиков
Второй... я думаю в элм комьюнити о нем не особо знают... примеры мне неизвестны... но если можно будет на досуге что-то накидать...
источник

DK

Denis Krivosheev in Elm Lang сообщество разработчиков
Или в твоём коде ...
источник

MP

Max P in Elm Lang сообщество разработчиков
Denis Krivosheev
Ну первый вариант тривиальный. Просто тестируй публичные функции которые используют приватные, которые нужно протестить
Ок, завтра попробую и может гист сюда набросаю, чтобы поконкретнее спросить.
источник

MP

Max P in Elm Lang сообщество разработчиков
Спасибо за ответы )
источник
2020 June 07

D•

Dan • Captain in Elm Lang сообщество разработчиков
На случай, если меня читают Лимассольцы: в районе Alkaiou 14 пропала кошка. Откликается на Ада, ласковая, людей не боится, но может быть в плохом состоянии. Ей нужна медицинская помощь, пожалуйста, если увидите ее - звоните/пишите мне в любое время. Может просто лежать где-то в тени, так как последние сутки температурила. На ней синий ошейник и синий тег в форме сердца с именем и номером телефона, 99230592 Мария
источник

D•

Dan • Captain in Elm Lang сообщество разработчиков
источник

YP

Yauhen Pyl in Elm Lang сообщество разработчиков
привет всем, надеюсь у вас все хорошо.
Вопрос по поводу сохранения промежуточных результатов в модели
update msg model =
 ...
 update msg model =
 -- ...
 msg1 ->
   let
      data1 = heavyFunc1

      data2 = data1 |> heavyFunc2
   in
   ( { model | data1 = data1, data2 = data2}
   , Cmd.none
   )

тут я так понял два раза вызывается heavyFunc1. Можно как то элегантно избежать такого? я вроде только один способ вижу - поместить data1 в лист и дальше List.map
источник