Size: a a a

2018 November 28

MS

Maksim Sukhotski in GitFox
Eugene Shapovalov
через Mockito и mock для пагинатора
т.е. можно замокать поле, которое до этого самостоятельно проинициализировалось?
источник

ES

Eugene Shapovalov in GitFox
Maksim Sukhotski
т.е. можно замокать поле, которое до этого самостоятельно проинициализировалось?
точно, пагинатор не передается как зависимость.
источник

MS

Maksim Sukhotski in GitFox
то есть тут нужен будет рефакторинг?
источник

ES

Eugene Shapovalov in GitFox
скорее всего да, и нужно продумать как это лучше отрефакторить.
источник

IG

Ilya Gulya in GitFox
Maksim Sukhotski
если бы пришлось написать юнит тесты на презентеры, как, к примеру, убедиться, что при вызове метода MergeRequestCommitsPresenter#refreshCommits дергается paginator.refresh() ?

https://gitlab.com/terrakok/gitlab-client/blob/develop/app/src/main/java/ru/terrakok/gitlabclient/presentation/mergerequest/commits/MergeRequestCommitsPresenter.kt
А зачем тестировать именно это? Тут же нужно убедиться что вью стейт получил ожидаемую нами команду.
источник

IG

Ilya Gulya in GitFox
Ну, я о том, какую пользу несёт тест который проверяет именно вызов refresh у пагинатора. Тестировать нужно же чёрный ящик.
источник

MS

Maksim Sukhotski in GitFox
Ilya Gulya
А зачем тестировать именно это? Тут же нужно убедиться что вью стейт получил ожидаемую нами команду.
это уже задача тестов на класс Paginator, разве нет?
источник

IG

Ilya Gulya in GitFox
Maksim Sukhotski
это уже задача тестов на класс Paginator, разве нет?
Тестировать нужно поведение сущности. А каким образом это поведение реализовано нам не должно быть важно.
Ну, я это так понимаю.
источник

IG

Ilya Gulya in GitFox
Соответственно, вызвал он рефреш у пагинатора или сразу сказал вьюстейту показать прогресс должно быть пофиг
источник

MS

Maksim Sukhotski in GitFox
Ilya Gulya
Тестировать нужно поведение сущности. А каким образом это поведение реализовано нам не должно быть важно.
Ну, я это так понимаю.
так или иначе нужно иметь возможность предварительно настроить пагинатор для того, чтобы протестировать все краевые случаи.
не всегда ведь метод refreshCommits ведёт к вызову viewState.showCommits()
источник

IG

Ilya Gulya in GitFox
Maksim Sukhotski
так или иначе нужно иметь возможность предварительно настроить пагинатор для того, чтобы протестировать все краевые случаи.
не всегда ведь метод refreshCommits ведёт к вызову viewState.showCommits()
Это не настройка пагинатора. Это настройка источника данных для него. Поведение пагинатора детерминировано.
источник

IG

Ilya Gulya in GitFox
А источник данных можно мокнуть и вернуть необходимый для теста результат
источник

MS

Maksim Sukhotski in GitFox
Ilya Gulya
Это не настройка пагинатора. Это настройка источника данных для него. Поведение пагинатора детерминировано.
согласен. вопрос снят
источник

IG

Ilya Gulya in GitFox
Другой вопрос в том, нужно ли вообще тестировать презентер)
источник

KT

Konstantin Tskhovrebov in GitFox
Всем привет! я знаю, что там есть МР на мне, я обязательно их разберу!
я был в разъездах и другой рутине, не думайте плохо 😉
сейчас вроде выбрался и скоро опять начну заниматься гитфоксом
источник

IG

Ilya Gulya in GitFox
А я постараюсь на этой неделе закончить задачу с MarkdownTextView
источник

ES

Eugene Shapovalov in GitFox
а я сегодня хочу попробовать вкрутить code_highlight
источник

IG

Ilya Gulya in GitFox
Konstantin Tskhovrebov
продумал. план такой: надо сделать кастомную вью MarkdownTextView, у которой будет свой презентер.
Это хорошо описано в мокси вики. делается просто. мы часто используем.
у этой вью будет метод setMarkdown(text: String, projectId: Long? = null)
она будет передавать все это дело своему презентеру, а тот будет грузить лейблы, отдвать на парсинг марквону и тд

важно: это то что можно засетить новый текст, до того как распарсился старый (в ресайклере). поэтому надо учесть отписку и запуск нового процесса и тд

это хорошее архитектурное задание 😊 готовы взять?
если да, то надо отдельным МР создать это в проекте (пока без лейблов, а как отдельную задачу)

в MarkdownPresenter будет инжектиться ProjectInteractor и MarkdownConverter

главное все правильно и аккуартно приготовить))
Небольшой вопрос. Не до конца понял, что ты имел в виду.
>если да, то надо отдельным МР создать это в проекте (пока без лейблов, а как отдельную задачу)
это значит от develop ветвиться или же от текущего состояния ветки extend-markdown-support?
источник

ES

Eugene Shapovalov in GitFox
Ilya Gulya
Небольшой вопрос. Не до конца понял, что ты имел в виду.
>если да, то надо отдельным МР создать это в проекте (пока без лейблов, а как отдельную задачу)
это значит от develop ветвиться или же от текущего состояния ветки extend-markdown-support?
а тебе для реализации этой логики надо то, что ты делал до этоого?
источник

IG

Ilya Gulya in GitFox
Eugene Shapovalov
а тебе для реализации этой логики надо то, что ты делал до этоого?
Ну, вообще нет, не нужно. Логично 🙂
источник