home.social

#моки — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #моки, aggregated by home.social.

  1. Моки без боли

    Моки — достаточно крутой инструмент, если использовать его правильно. И все-таки лично для меня писать и поддерживать тесты на моках всегда было отдельным видом боли. Думаю, все знакомы с ситуацией: добавил в метод новый аргумент — и пошёл в 30 тест-кейсов проставлять заглушки. И это только от одного нового аргумента. И я не буду здесь спорить о терминологии — в этой статье я буду называть все тестовые дублёры «моками». Примеры будут на Scala, но моки в других языках работают похожим образом, так что боль универсальная. Как и решение — об этом в статье.

    habr.com/ru/articles/1030834/

    #scala #scalamock #zio #catseffect #тестирование #моки #стабы #моктестирование #юниттестирование

  2. Моки без боли

    Моки — достаточно крутой инструмент, если использовать его правильно. И все-таки лично для меня писать и поддерживать тесты на моках всегда было отдельным видом боли. Думаю, все знакомы с ситуацией: добавил в метод новый аргумент — и пошёл в 30 тест-кейсов проставлять заглушки. И это только от одного нового аргумента. И я не буду здесь спорить о терминологии — в этой статье я буду называть все тестовые дублёры «моками». Примеры будут на Scala, но моки в других языках работают похожим образом, так что боль универсальная. Как и решение — об этом в статье.

    habr.com/ru/articles/1030834/

    #scala #scalamock #zio #catseffect #тестирование #моки #стабы #моктестирование #юниттестирование

  3. Моки без боли

    Моки — достаточно крутой инструмент, если использовать его правильно. И все-таки лично для меня писать и поддерживать тесты на моках всегда было отдельным видом боли. Думаю, все знакомы с ситуацией: добавил в метод новый аргумент — и пошёл в 30 тест-кейсов проставлять заглушки. И это только от одного нового аргумента. И я не буду здесь спорить о терминологии — в этой статье я буду называть все тестовые дублёры «моками». Примеры будут на Scala, но моки в других языках работают похожим образом, так что боль универсальная. Как и решение — об этом в статье.

    habr.com/ru/articles/1030834/

    #scala #scalamock #zio #catseffect #тестирование #моки #стабы #моктестирование #юниттестирование

  4. Моки без боли

    Моки — достаточно крутой инструмент, если использовать его правильно. И все-таки лично для меня писать и поддерживать тесты на моках всегда было отдельным видом боли. Думаю, все знакомы с ситуацией: добавил в метод новый аргумент — и пошёл в 30 тест-кейсов проставлять заглушки. И это только от одного нового аргумента. И я не буду здесь спорить о терминологии — в этой статье я буду называть все тестовые дублёры «моками». Примеры будут на Scala, но моки в других языках работают похожим образом, так что боль универсальная. Как и решение — об этом в статье.

    habr.com/ru/articles/1030834/

    #scala #scalamock #zio #catseffect #тестирование #моки #стабы #моктестирование #юниттестирование

  5. Пишем быстрые UI-автотесты без флаков, стендов и боли: изоляционный подход в CI/CD

    Большинство UI-тестов флакают, медленно работают и в итоге отключаются в CI. Показываю альтернативу — изоляционные UI-тесты без стендов, таймингов и боли.

    habr.com/ru/articles/982296/

    #python #ui #qa #qa_automation #автотесты #docker #cicd #mock #моки #мокирование

  6. Пишем быстрые UI-автотесты без флаков, стендов и боли: изоляционный подход в CI/CD

    Большинство UI-тестов флакают, медленно работают и в итоге отключаются в CI. Показываю альтернативу — изоляционные UI-тесты без стендов, таймингов и боли.

    habr.com/ru/articles/982296/

    #python #ui #qa #qa_automation #автотесты #docker #cicd #mock #моки #мокирование

  7. Пишем быстрые UI-автотесты без флаков, стендов и боли: изоляционный подход в CI/CD

    Большинство UI-тестов флакают, медленно работают и в итоге отключаются в CI. Показываю альтернативу — изоляционные UI-тесты без стендов, таймингов и боли.

    habr.com/ru/articles/982296/

    #python #ui #qa #qa_automation #автотесты #docker #cicd #mock #моки #мокирование

  8. Пишем быстрые UI-автотесты без флаков, стендов и боли: изоляционный подход в CI/CD

    Большинство UI-тестов флакают, медленно работают и в итоге отключаются в CI. Показываю альтернативу — изоляционные UI-тесты без стендов, таймингов и боли.

    habr.com/ru/articles/982296/

    #python #ui #qa #qa_automation #автотесты #docker #cicd #mock #моки #мокирование

  9. Пишем быстрые API-автотесты без флаков, стендов и боли: изоляционный подход в CI/CD

    Большинство API-тестов бесполезны: они флакают и тормозят CI. Показываю альтернативу — изоляционные тесты без стендов и боли.

    habr.com/ru/articles/978660/

    #python #api #qa #qa_automation #автотесты #docker #cicd #mock #моки #мокирование

  10. Пишем быстрые API-автотесты без флаков, стендов и боли: изоляционный подход в CI/CD

    Большинство API-тестов бесполезны: они флакают и тормозят CI. Показываю альтернативу — изоляционные тесты без стендов и боли.

    habr.com/ru/articles/978660/

    #python #api #qa #qa_automation #автотесты #docker #cicd #mock #моки #мокирование

  11. Пишем быстрые API-автотесты без флаков, стендов и боли: изоляционный подход в CI/CD

    Большинство API-тестов бесполезны: они флакают и тормозят CI. Показываю альтернативу — изоляционные тесты без стендов и боли.

    habr.com/ru/articles/978660/

    #python #api #qa #qa_automation #автотесты #docker #cicd #mock #моки #мокирование

  12. Пишем быстрые API-автотесты без флаков, стендов и боли: изоляционный подход в CI/CD

    Большинство API-тестов бесполезны: они флакают и тормозят CI. Показываю альтернативу — изоляционные тесты без стендов и боли.

    habr.com/ru/articles/978660/

    #python #api #qa #qa_automation #автотесты #docker #cicd #mock #моки #мокирование

  13. ZIO Mock не может — ScalaMock поможет

    Если вы пишете тесты на ZIO, то с моками, скорее всего, уже сталкивались. И почти наверняка — с ZIO Mock. Формально он решает задачу, но на практике ломает Arrange‑Act‑Assert, «краснит» в IDEA и иногда падает так, что вы видите только InvalidCallException: null. В Яндекс Вертикалях мы довольно долго жили с этой библиотекой — пока количество таких тестов не перевалило за пару сотен и они не расползлись по десятку команд. Меня зовут Женя Веретенников, я тимлид в Яндекс Вертикалях и последние годы занимаюсь инструментами для Scala‑разработчиков и инфраструктурой бэкенд‑монорепозитория. Когда стало ясно, что ZIO Mock больше мешает, чем помогает, мы решили отказаться от него полностью — и подружить ZIO Test с классическим ScalaMock. Он даёт более предсказуемый синтаксис и понятные ошибки, но из коробки с ZIO не работает. В этой статье я расскажу не о том, как пользоваться новой библиотекой, а о том, как мы её делали: какие ограничения ZIO‑стека пришлось учитывать, где пришлось лезть под капот ScalaMock и ZIO Test и во что в итоге превратилась эта инженерная затея. Это история про построение собственного test tooling в большой Scala‑кодовой базе — с честными компромиссами и практическими выводами.

    habr.com/ru/companies/yandex/a

    #scala #scalamock #zio #моки

  14. ZIO Mock не может — ScalaMock поможет

    Если вы пишете тесты на ZIO, то с моками, скорее всего, уже сталкивались. И почти наверняка — с ZIO Mock. Формально он решает задачу, но на практике ломает Arrange‑Act‑Assert, «краснит» в IDEA и иногда падает так, что вы видите только InvalidCallException: null. В Яндекс Вертикалях мы довольно долго жили с этой библиотекой — пока количество таких тестов не перевалило за пару сотен и они не расползлись по десятку команд. Меня зовут Женя Веретенников, я тимлид в Яндекс Вертикалях и последние годы занимаюсь инструментами для Scala‑разработчиков и инфраструктурой бэкенд‑монорепозитория. Когда стало ясно, что ZIO Mock больше мешает, чем помогает, мы решили отказаться от него полностью — и подружить ZIO Test с классическим ScalaMock. Он даёт более предсказуемый синтаксис и понятные ошибки, но из коробки с ZIO не работает. В этой статье я расскажу не о том, как пользоваться новой библиотекой, а о том, как мы её делали: какие ограничения ZIO‑стека пришлось учитывать, где пришлось лезть под капот ScalaMock и ZIO Test и во что в итоге превратилась эта инженерная затея. Это история про построение собственного test tooling в большой Scala‑кодовой базе — с честными компромиссами и практическими выводами.

    habr.com/ru/companies/yandex/a

    #scala #scalamock #zio #моки

  15. ZIO Mock не может — ScalaMock поможет

    Если вы пишете тесты на ZIO, то с моками, скорее всего, уже сталкивались. И почти наверняка — с ZIO Mock. Формально он решает задачу, но на практике ломает Arrange‑Act‑Assert, «краснит» в IDEA и иногда падает так, что вы видите только InvalidCallException: null. В Яндекс Вертикалях мы довольно долго жили с этой библиотекой — пока количество таких тестов не перевалило за пару сотен и они не расползлись по десятку команд. Меня зовут Женя Веретенников, я тимлид в Яндекс Вертикалях и последние годы занимаюсь инструментами для Scala‑разработчиков и инфраструктурой бэкенд‑монорепозитория. Когда стало ясно, что ZIO Mock больше мешает, чем помогает, мы решили отказаться от него полностью — и подружить ZIO Test с классическим ScalaMock. Он даёт более предсказуемый синтаксис и понятные ошибки, но из коробки с ZIO не работает. В этой статье я расскажу не о том, как пользоваться новой библиотекой, а о том, как мы её делали: какие ограничения ZIO‑стека пришлось учитывать, где пришлось лезть под капот ScalaMock и ZIO Test и во что в итоге превратилась эта инженерная затея. Это история про построение собственного test tooling в большой Scala‑кодовой базе — с честными компромиссами и практическими выводами.

    habr.com/ru/companies/yandex/a

    #scala #scalamock #zio #моки

  16. ZIO Mock не может — ScalaMock поможет

    Если вы пишете тесты на ZIO, то с моками, скорее всего, уже сталкивались. И почти наверняка — с ZIO Mock. Формально он решает задачу, но на практике ломает Arrange‑Act‑Assert, «краснит» в IDEA и иногда падает так, что вы видите только InvalidCallException: null. В Яндекс Вертикалях мы довольно долго жили с этой библиотекой — пока количество таких тестов не перевалило за пару сотен и они не расползлись по десятку команд. Меня зовут Женя Веретенников, я тимлид в Яндекс Вертикалях и последние годы занимаюсь инструментами для Scala‑разработчиков и инфраструктурой бэкенд‑монорепозитория. Когда стало ясно, что ZIO Mock больше мешает, чем помогает, мы решили отказаться от него полностью — и подружить ZIO Test с классическим ScalaMock. Он даёт более предсказуемый синтаксис и понятные ошибки, но из коробки с ZIO не работает. В этой статье я расскажу не о том, как пользоваться новой библиотекой, а о том, как мы её делали: какие ограничения ZIO‑стека пришлось учитывать, где пришлось лезть под капот ScalaMock и ZIO Test и во что в итоге превратилась эта инженерная затея. Это история про построение собственного test tooling в большой Scala‑кодовой базе — с честными компромиссами и практическими выводами.

    habr.com/ru/companies/yandex/a

    #scala #scalamock #zio #моки

  17. Proxyman + HAR = mock-данные для iOS-тестов

    В Naumen мы используем связку Proxyman + HAR , чтобы готовить mock-данные для интеграционных тестов iOS-приложений. Такой подход выручает, когда реальный сервер недоступен или не умеет переводить себя в нужное состояние для проверки: мы перехватываем сетевой трафик приложения, сохраняем его и превращаем в готовые моки. О том, как именно мы это делаем, рассказывает Ринат, iOS-разработчик Naumen. В его практике Proxyman помогает быстро собирать сетевые сценарии, а экспорт в HAR и консольная утилита позволяют автоматически преобразовывать их в моки для тестов. Это экономит часы ручной работы и делает интеграционные тесты стабильными и предсказуемыми.

    habr.com/ru/companies/naumen/a

    #iOS #Swift #Proxyman #HAR #моки #тестирование_мобильных_приложений #URLProtocol #автоматизация_тестирования #mobile_qa

  18. Proxyman + HAR = mock-данные для iOS-тестов

    В Naumen мы используем связку Proxyman + HAR , чтобы готовить mock-данные для интеграционных тестов iOS-приложений. Такой подход выручает, когда реальный сервер недоступен или не умеет переводить себя в нужное состояние для проверки: мы перехватываем сетевой трафик приложения, сохраняем его и превращаем в готовые моки. О том, как именно мы это делаем, рассказывает Ринат, iOS-разработчик Naumen. В его практике Proxyman помогает быстро собирать сетевые сценарии, а экспорт в HAR и консольная утилита позволяют автоматически преобразовывать их в моки для тестов. Это экономит часы ручной работы и делает интеграционные тесты стабильными и предсказуемыми.

    habr.com/ru/companies/naumen/a

    #iOS #Swift #Proxyman #HAR #моки #тестирование_мобильных_приложений #URLProtocol #автоматизация_тестирования #mobile_qa

  19. Proxyman + HAR = mock-данные для iOS-тестов

    В Naumen мы используем связку Proxyman + HAR , чтобы готовить mock-данные для интеграционных тестов iOS-приложений. Такой подход выручает, когда реальный сервер недоступен или не умеет переводить себя в нужное состояние для проверки: мы перехватываем сетевой трафик приложения, сохраняем его и превращаем в готовые моки. О том, как именно мы это делаем, рассказывает Ринат, iOS-разработчик Naumen. В его практике Proxyman помогает быстро собирать сетевые сценарии, а экспорт в HAR и консольная утилита позволяют автоматически преобразовывать их в моки для тестов. Это экономит часы ручной работы и делает интеграционные тесты стабильными и предсказуемыми.

    habr.com/ru/companies/naumen/a

    #iOS #Swift #Proxyman #HAR #моки #тестирование_мобильных_приложений #URLProtocol #автоматизация_тестирования #mobile_qa

  20. Proxyman + HAR = mock-данные для iOS-тестов

    В Naumen мы используем связку Proxyman + HAR , чтобы готовить mock-данные для интеграционных тестов iOS-приложений. Такой подход выручает, когда реальный сервер недоступен или не умеет переводить себя в нужное состояние для проверки: мы перехватываем сетевой трафик приложения, сохраняем его и превращаем в готовые моки. О том, как именно мы это делаем, рассказывает Ринат, iOS-разработчик Naumen. В его практике Proxyman помогает быстро собирать сетевые сценарии, а экспорт в HAR и консольная утилита позволяют автоматически преобразовывать их в моки для тестов. Это экономит часы ручной работы и делает интеграционные тесты стабильными и предсказуемыми.

    habr.com/ru/companies/naumen/a

    #iOS #Swift #Proxyman #HAR #моки #тестирование_мобильных_приложений #URLProtocol #автоматизация_тестирования #mobile_qa

  21. Monkey patching? В Go? Серьёзно? Или ка писать тесты и не сойти сума

    На днях подходит ко мне коллега с вопросом: «Слушай, а как в Go сделать замену логики функции в тесте?» Я уточняю, что он имеет в виду. А он такой: «Ну, хочу monkey patching, чтобы подменять функции из коробки. Типа time.Now возвращала фиксированное время, uuid.New конкретный ID. Чтобы удобно тестироваться». И тут я, конечно, немного завис :D Да, технически в Go есть способы делать monkey patching (еще и есть библиотека ) через unsafe, через подмену указателей на функции в рантайме. Но это настолько хрупкое и непредсказуемое решение, что я бы не советовал тащить его в продакшен-код. Особенно когда есть нормальный, идиоматичный способ решить эту задачу.

    habr.com/ru/articles/971190/

    #golang #go #тесты #тест #тестирование #мок #моки

  22. Monkey patching? В Go? Серьёзно? Или ка писать тесты и не сойти сума

    На днях подходит ко мне коллега с вопросом: «Слушай, а как в Go сделать замену логики функции в тесте?» Я уточняю, что он имеет в виду. А он такой: «Ну, хочу monkey patching, чтобы подменять функции из коробки. Типа time.Now возвращала фиксированное время, uuid.New конкретный ID. Чтобы удобно тестироваться». И тут я, конечно, немного завис :D Да, технически в Go есть способы делать monkey patching (еще и есть библиотека ) через unsafe, через подмену указателей на функции в рантайме. Но это настолько хрупкое и непредсказуемое решение, что я бы не советовал тащить его в продакшен-код. Особенно когда есть нормальный, идиоматичный способ решить эту задачу.

    habr.com/ru/articles/971190/

    #golang #go #тесты #тест #тестирование #мок #моки

  23. Monkey patching? В Go? Серьёзно? Или ка писать тесты и не сойти сума

    На днях подходит ко мне коллега с вопросом: «Слушай, а как в Go сделать замену логики функции в тесте?» Я уточняю, что он имеет в виду. А он такой: «Ну, хочу monkey patching, чтобы подменять функции из коробки. Типа time.Now возвращала фиксированное время, uuid.New конкретный ID. Чтобы удобно тестироваться». И тут я, конечно, немного завис :D Да, технически в Go есть способы делать monkey patching (еще и есть библиотека ) через unsafe, через подмену указателей на функции в рантайме. Но это настолько хрупкое и непредсказуемое решение, что я бы не советовал тащить его в продакшен-код. Особенно когда есть нормальный, идиоматичный способ решить эту задачу.

    habr.com/ru/articles/971190/

    #golang #go #тесты #тест #тестирование #мок #моки

  24. Monkey patching? В Go? Серьёзно? Или ка писать тесты и не сойти сума

    На днях подходит ко мне коллега с вопросом: «Слушай, а как в Go сделать замену логики функции в тесте?» Я уточняю, что он имеет в виду. А он такой: «Ну, хочу monkey patching, чтобы подменять функции из коробки. Типа time.Now возвращала фиксированное время, uuid.New конкретный ID. Чтобы удобно тестироваться». И тут я, конечно, немного завис :D Да, технически в Go есть способы делать monkey patching (еще и есть библиотека ) через unsafe, через подмену указателей на функции в рантайме. Но это настолько хрупкое и непредсказуемое решение, что я бы не советовал тащить его в продакшен-код. Особенно когда есть нормальный, идиоматичный способ решить эту задачу.

    habr.com/ru/articles/971190/

    #golang #go #тесты #тест #тестирование #мок #моки

  25. Фронтенд обгоняет бек или как мы написали 200_000 строк кода на моках

    Я работаю старшим фронтенд-разработчиком в it-отделе одного из крупнейших федеральных застройщиков. Специфика разработки в такой непрофильной компании — сроки спускаемые сверху и вообще не имеющие корреляции с реальными ресурсами и возможностями команды. Именно поэтому мы работаем очень быстро, постоянно пытаясь получить (максимум результата)*3 за (минимум времени)/4. В этих условиях мы делали большие интеграции с headless CMS Directus и непосредственно с бекендом, используя моковые данные на фронте. Интеграции были большие и быстрые — и вот тут-то и стало видно, что большинство фронтенд-разработчиков не очень понимают, как подготовить интеграцию, чтобы потом было быстро и не больно заменять моки на реальные ответы. В этой статье пойдет речь о таких подходах на фронтенде,

    habr.com/ru/articles/970606/

    #интеграция_на_фронтенде #typescript #javascript #ошибки_при_интеграции_на_фронтенде #ts #моки #мокирование #мокирование_при_интеграции #проблемы_при_интеграции_на_моках

  26. Фронтенд обгоняет бек или как мы написали 200_000 строк кода на моках

    Я работаю старшим фронтенд-разработчиком в it-отделе одного из крупнейших федеральных застройщиков. Специфика разработки в такой непрофильной компании — сроки спускаемые сверху и вообще не имеющие корреляции с реальными ресурсами и возможностями команды. Именно поэтому мы работаем очень быстро, постоянно пытаясь получить (максимум результата)*3 за (минимум времени)/4. В этих условиях мы делали большие интеграции с headless CMS Directus и непосредственно с бекендом, используя моковые данные на фронте. Интеграции были большие и быстрые — и вот тут-то и стало видно, что большинство фронтенд-разработчиков не очень понимают, как подготовить интеграцию, чтобы потом было быстро и не больно заменять моки на реальные ответы. В этой статье пойдет речь о таких подходах на фронтенде,

    habr.com/ru/articles/970606/

    #интеграция_на_фронтенде #typescript #javascript #ошибки_при_интеграции_на_фронтенде #ts #моки #мокирование #мокирование_при_интеграции #проблемы_при_интеграции_на_моках

  27. Фронтенд обгоняет бек или как мы написали 200_000 строк кода на моках

    Я работаю старшим фронтенд-разработчиком в it-отделе одного из крупнейших федеральных застройщиков. Специфика разработки в такой непрофильной компании — сроки спускаемые сверху и вообще не имеющие корреляции с реальными ресурсами и возможностями команды. Именно поэтому мы работаем очень быстро, постоянно пытаясь получить (максимум результата)*3 за (минимум времени)/4. В этих условиях мы делали большие интеграции с headless CMS Directus и непосредственно с бекендом, используя моковые данные на фронте. Интеграции были большие и быстрые — и вот тут-то и стало видно, что большинство фронтенд-разработчиков не очень понимают, как подготовить интеграцию, чтобы потом было быстро и не больно заменять моки на реальные ответы. В этой статье пойдет речь о таких подходах на фронтенде,

    habr.com/ru/articles/970606/

    #интеграция_на_фронтенде #typescript #javascript #ошибки_при_интеграции_на_фронтенде #ts #моки #мокирование #мокирование_при_интеграции #проблемы_при_интеграции_на_моках

  28. Фронтенд обгоняет бек или как мы написали 200_000 строк кода на моках

    Я работаю старшим фронтенд-разработчиком в it-отделе одного из крупнейших федеральных застройщиков. Специфика разработки в такой непрофильной компании — сроки спускаемые сверху и вообще не имеющие корреляции с реальными ресурсами и возможностями команды. Именно поэтому мы работаем очень быстро, постоянно пытаясь получить (максимум результата)*3 за (минимум времени)/4. В этих условиях мы делали большие интеграции с headless CMS Directus и непосредственно с бекендом, используя моковые данные на фронте. Интеграции были большие и быстрые — и вот тут-то и стало видно, что большинство фронтенд-разработчиков не очень понимают, как подготовить интеграцию, чтобы потом было быстро и не больно заменять моки на реальные ответы. В этой статье пойдет речь о таких подходах на фронтенде,

    habr.com/ru/articles/970606/

    #интеграция_на_фронтенде #typescript #javascript #ошибки_при_интеграции_на_фронтенде #ts #моки #мокирование #мокирование_при_интеграции #проблемы_при_интеграции_на_моках

  29. Лучшие практики автоматизации тестирования: 9 принципов стабильных автотестов

    Почему автотесты становятся нестабильными и перестают приносить пользу? Разбираем системные причины флаков, бессмысленных ретраев и бесконечных E2E-монстров. Практические принципы: моки, изоляция, атомарность и минимализм — без философии, только инженерия.

    habr.com/ru/articles/965890/

    #автотесты #qa #qa_automation #python #golang #автоматизация_тестирования #лучшие_практики #моки #рефакторинг #flakyтесты

  30. Лучшие практики автоматизации тестирования: 9 принципов стабильных автотестов

    Почему автотесты становятся нестабильными и перестают приносить пользу? Разбираем системные причины флаков, бессмысленных ретраев и бесконечных E2E-монстров. Практические принципы: моки, изоляция, атомарность и минимализм — без философии, только инженерия.

    habr.com/ru/articles/965890/

    #автотесты #qa #qa_automation #python #golang #автоматизация_тестирования #лучшие_практики #моки #рефакторинг #flakyтесты

  31. Лучшие практики автоматизации тестирования: 9 принципов стабильных автотестов

    Почему автотесты становятся нестабильными и перестают приносить пользу? Разбираем системные причины флаков, бессмысленных ретраев и бесконечных E2E-монстров. Практические принципы: моки, изоляция, атомарность и минимализм — без философии, только инженерия.

    habr.com/ru/articles/965890/

    #автотесты #qa #qa_automation #python #golang #автоматизация_тестирования #лучшие_практики #моки #рефакторинг #flakyтесты

  32. Лучшие практики автоматизации тестирования: 9 принципов стабильных автотестов

    Почему автотесты становятся нестабильными и перестают приносить пользу? Разбираем системные причины флаков, бессмысленных ретраев и бесконечных E2E-монстров. Практические принципы: моки, изоляция, атомарность и минимализм — без философии, только инженерия.

    habr.com/ru/articles/965890/

    #автотесты #qa #qa_automation #python #golang #автоматизация_тестирования #лучшие_практики #моки #рефакторинг #flakyтесты

  33. Моки в тестировании микросервисов с кучей интеграций — кейс финтех-приложения

    Привет, Хабр! Я Святослав Волохов, QA-инженер в AGIMA . Тот, кто хоть раз тестировал сложный интеграционный сервис с десятками зависимостей и внешними API, да еще и в финтехе, знает — без грамотно выстроенной системы тестирования не обойтись. В этой статье хочу поделиться историей о том, как наша команда работала над масштабным финансовым сервисом с большим количеством интеграций. Это продуктовая экосистема, где можно оформить вклад, купить облигации, застраховать квартиру, получить рекомендации по финансам и многое другое. Расскажу о сложностях, с которыми мы столкнулись, и об их решениях: берите на заметку, особенно если работаете над enterprise-проектами и вы — начинающий специалист.

    habr.com/ru/companies/agima/ar

    #моки #тестирование_микросервисов #тестирование_интеграций #тестирование_в_финтех #тестирование_мобильных_приложений

  34. Моки в тестировании микросервисов с кучей интеграций — кейс финтех-приложения

    Привет, Хабр! Я Святослав Волохов, QA-инженер в AGIMA . Тот, кто хоть раз тестировал сложный интеграционный сервис с десятками зависимостей и внешними API, да еще и в финтехе, знает — без грамотно выстроенной системы тестирования не обойтись. В этой статье хочу поделиться историей о том, как наша команда работала над масштабным финансовым сервисом с большим количеством интеграций. Это продуктовая экосистема, где можно оформить вклад, купить облигации, застраховать квартиру, получить рекомендации по финансам и многое другое. Расскажу о сложностях, с которыми мы столкнулись, и об их решениях: берите на заметку, особенно если работаете над enterprise-проектами и вы — начинающий специалист.

    habr.com/ru/companies/agima/ar

    #моки #тестирование_микросервисов #тестирование_интеграций #тестирование_в_финтех #тестирование_мобильных_приложений

  35. Моки в тестировании микросервисов с кучей интеграций — кейс финтех-приложения

    Привет, Хабр! Я Святослав Волохов, QA-инженер в AGIMA . Тот, кто хоть раз тестировал сложный интеграционный сервис с десятками зависимостей и внешними API, да еще и в финтехе, знает — без грамотно выстроенной системы тестирования не обойтись. В этой статье хочу поделиться историей о том, как наша команда работала над масштабным финансовым сервисом с большим количеством интеграций. Это продуктовая экосистема, где можно оформить вклад, купить облигации, застраховать квартиру, получить рекомендации по финансам и многое другое. Расскажу о сложностях, с которыми мы столкнулись, и об их решениях: берите на заметку, особенно если работаете над enterprise-проектами и вы — начинающий специалист.

    habr.com/ru/companies/agima/ar

    #моки #тестирование_микросервисов #тестирование_интеграций #тестирование_в_финтех #тестирование_мобильных_приложений

  36. Моки в тестировании микросервисов с кучей интеграций — кейс финтех-приложения

    Привет, Хабр! Я Святослав Волохов, QA-инженер в AGIMA . Тот, кто хоть раз тестировал сложный интеграционный сервис с десятками зависимостей и внешними API, да еще и в финтехе, знает — без грамотно выстроенной системы тестирования не обойтись. В этой статье хочу поделиться историей о том, как наша команда работала над масштабным финансовым сервисом с большим количеством интеграций. Это продуктовая экосистема, где можно оформить вклад, купить облигации, застраховать квартиру, получить рекомендации по финансам и многое другое. Расскажу о сложностях, с которыми мы столкнулись, и об их решениях: берите на заметку, особенно если работаете над enterprise-проектами и вы — начинающий специалист.

    habr.com/ru/companies/agima/ar

    #моки #тестирование_микросервисов #тестирование_интеграций #тестирование_в_финтех #тестирование_мобильных_приложений

  37. Почему @patch из unittest.mock ломает вам тесты, если не указать autospec=True

    Привет, Хабр! Сегодня разберёмся, почему без autospec=True ваш безобидный @patch из unittest.mock может превратить зелёный репорт в мину замедленного действия. Смысл patch() прост: отрезаем внешний мир, подсовываем фейковый объект и гоняем логику изолированно. Но если не включить autospec , мок превращается в пластилин — к нему прилипает любой метод, любые аргументы, и тесты радостно хлопают ладоши, даже когда в коде опечатка или нарушена сигнатура.

    habr.com/ru/companies/otus/art

    #python #моки #pytest #модульное_тестирование #python_qa_engineer #test_isolation

  38. Почему @patch из unittest.mock ломает вам тесты, если не указать autospec=True

    Привет, Хабр! Сегодня разберёмся, почему без autospec=True ваш безобидный @patch из unittest.mock может превратить зелёный репорт в мину замедленного действия. Смысл patch() прост: отрезаем внешний мир, подсовываем фейковый объект и гоняем логику изолированно. Но если не включить autospec , мок превращается в пластилин — к нему прилипает любой метод, любые аргументы, и тесты радостно хлопают ладоши, даже когда в коде опечатка или нарушена сигнатура.

    habr.com/ru/companies/otus/art

    #python #моки #pytest #модульное_тестирование #python_qa_engineer #test_isolation

  39. Почему @patch из unittest.mock ломает вам тесты, если не указать autospec=True

    Привет, Хабр! Сегодня разберёмся, почему без autospec=True ваш безобидный @patch из unittest.mock может превратить зелёный репорт в мину замедленного действия. Смысл patch() прост: отрезаем внешний мир, подсовываем фейковый объект и гоняем логику изолированно. Но если не включить autospec , мок превращается в пластилин — к нему прилипает любой метод, любые аргументы, и тесты радостно хлопают ладоши, даже когда в коде опечатка или нарушена сигнатура.

    habr.com/ru/companies/otus/art

    #python #моки #pytest #модульное_тестирование #python_qa_engineer #test_isolation

  40. Почему @patch из unittest.mock ломает вам тесты, если не указать autospec=True

    Привет, Хабр! Сегодня разберёмся, почему без autospec=True ваш безобидный @patch из unittest.mock может превратить зелёный репорт в мину замедленного действия. Смысл patch() прост: отрезаем внешний мир, подсовываем фейковый объект и гоняем логику изолированно. Но если не включить autospec , мок превращается в пластилин — к нему прилипает любой метод, любые аргументы, и тесты радостно хлопают ладоши, даже когда в коде опечатка или нарушена сигнатура.

    habr.com/ru/companies/otus/art

    #python #моки #pytest #модульное_тестирование #python_qa_engineer #test_isolation

  41. [Перевод] Разница между очисткой, сбросом и восстановлением моков

    В данной статье мы подробно рассмотрим различия между операциями очистки (clearing), сброса (resetting) и восстановления (restoring) моков в процессе тестирования программного обеспечения. Вы узнаете, когда и в каких ситуациях применяется каждая из этих стратегий, а также какие преимущества и особенности они предоставляют. Мы также приведем практические примеры использования, чтобы продемонстрировать, как правильно управлять моками для повышения эффективности и надежности ваших тестов.

    habr.com/ru/articles/854336/

    #моки #тестирование #моковые_данные #мок_функция

  42. [Перевод] Разница между очисткой, сбросом и восстановлением моков

    В данной статье мы подробно рассмотрим различия между операциями очистки (clearing), сброса (resetting) и восстановления (restoring) моков в процессе тестирования программного обеспечения. Вы узнаете, когда и в каких ситуациях применяется каждая из этих стратегий, а также какие преимущества и особенности они предоставляют. Мы также приведем практические примеры использования, чтобы продемонстрировать, как правильно управлять моками для повышения эффективности и надежности ваших тестов.

    habr.com/ru/articles/854336/

    #моки #тестирование #моковые_данные #мок_функция

  43. [Перевод] Разница между очисткой, сбросом и восстановлением моков

    В данной статье мы подробно рассмотрим различия между операциями очистки (clearing), сброса (resetting) и восстановления (restoring) моков в процессе тестирования программного обеспечения. Вы узнаете, когда и в каких ситуациях применяется каждая из этих стратегий, а также какие преимущества и особенности они предоставляют. Мы также приведем практические примеры использования, чтобы продемонстрировать, как правильно управлять моками для повышения эффективности и надежности ваших тестов.

    habr.com/ru/articles/854336/

    #моки #тестирование #моковые_данные #мок_функция

  44. [Перевод] Разница между очисткой, сбросом и восстановлением моков

    В данной статье мы подробно рассмотрим различия между операциями очистки (clearing), сброса (resetting) и восстановления (restoring) моков в процессе тестирования программного обеспечения. Вы узнаете, когда и в каких ситуациях применяется каждая из этих стратегий, а также какие преимущества и особенности они предоставляют. Мы также приведем практические примеры использования, чтобы продемонстрировать, как правильно управлять моками для повышения эффективности и надежности ваших тестов.

    habr.com/ru/articles/854336/

    #моки #тестирование #моковые_данные #мок_функция

  45. [Перевод] Четыре принципа разработки ПО, которым я научился на горьком опыте

    Недавно я спроектировал и написал огромный сервис, и в прошлом месяце (наконец-то) состоялся его запуск. В процессе проектирования и имплементации я обнаружил, что ряд закономерностей, которые я приведу ниже, раз за разом всплывает в самых разных сценариях. Эти закономерности настолько устойчивы, что, рискну предположить, знание как минимум одной из них будет актуально для любого читателя в отношении проекта, разработкой которого он сейчас занят. Но если даже их невозможно применить непосредственно к тому, над чем вы работаете сейчас, надеюсь, эти принципы послужат полезной пищей для ума, а также основанием для комментариев и возражений, которые вы вольны оставлять под статьей. Хотелось бы отметить здесь одну вещь: разумеется, для каждого из принципов есть свое место и время. Как и во всех прочих случаях, важно учитывать нюансы. Я склонен держаться этих заключений в общем случае, по той причине что, как я вижу по опыту инспекции кода и документации, люди часто принимают противоположный образ действия как вариант по умолчанию.

    habr.com/ru/companies/producti

    #проектирование #моки

  46. [Перевод] Четыре принципа разработки ПО, которым я научился на горьком опыте

    Недавно я спроектировал и написал огромный сервис, и в прошлом месяце (наконец-то) состоялся его запуск. В процессе проектирования и имплементации я обнаружил, что ряд закономерностей, которые я приведу ниже, раз за разом всплывает в самых разных сценариях. Эти закономерности настолько устойчивы, что, рискну предположить, знание как минимум одной из них будет актуально для любого читателя в отношении проекта, разработкой которого он сейчас занят. Но если даже их невозможно применить непосредственно к тому, над чем вы работаете сейчас, надеюсь, эти принципы послужат полезной пищей для ума, а также основанием для комментариев и возражений, которые вы вольны оставлять под статьей. Хотелось бы отметить здесь одну вещь: разумеется, для каждого из принципов есть свое место и время. Как и во всех прочих случаях, важно учитывать нюансы. Я склонен держаться этих заключений в общем случае, по той причине что, как я вижу по опыту инспекции кода и документации, люди часто принимают противоположный образ действия как вариант по умолчанию.

    habr.com/ru/companies/producti

    #проектирование #моки

  47. [Перевод] Четыре принципа разработки ПО, которым я научился на горьком опыте

    Недавно я спроектировал и написал огромный сервис, и в прошлом месяце (наконец-то) состоялся его запуск. В процессе проектирования и имплементации я обнаружил, что ряд закономерностей, которые я приведу ниже, раз за разом всплывает в самых разных сценариях. Эти закономерности настолько устойчивы, что, рискну предположить, знание как минимум одной из них будет актуально для любого читателя в отношении проекта, разработкой которого он сейчас занят. Но если даже их невозможно применить непосредственно к тому, над чем вы работаете сейчас, надеюсь, эти принципы послужат полезной пищей для ума, а также основанием для комментариев и возражений, которые вы вольны оставлять под статьей. Хотелось бы отметить здесь одну вещь: разумеется, для каждого из принципов есть свое место и время. Как и во всех прочих случаях, важно учитывать нюансы. Я склонен держаться этих заключений в общем случае, по той причине что, как я вижу по опыту инспекции кода и документации, люди часто принимают противоположный образ действия как вариант по умолчанию.

    habr.com/ru/companies/producti

    #проектирование #моки

  48. Эмуляция бэкенда: как разрабатывать изолированный фронтенд с помощью Mock Service Worker

    Всем привет! Сегодня я хочу рассказать о Mock Service Worker — технологии, которая позволяет эмулировать поведение бэкенда в ситуациях, когда по каким-то причинам невозможно использовать реальный бэкенд для полноценной разработки фронтенда. Тем более, что совсем недавно вышла новая мажорная версия библиотеки msw , и в ней достаточно много важных обновлений.

    habr.com/ru/articles/780200/

    #service_worker #mocks #mock #mock_service_worker #mock_server #api_mocking #моки #эмуляция_бэкенда #e2eтесты

  49. Эмуляция бэкенда: как разрабатывать изолированный фронтенд с помощью Mock Service Worker

    Всем привет! Сегодня я хочу рассказать о Mock Service Worker — технологии, которая позволяет эмулировать поведение бэкенда в ситуациях, когда по каким-то причинам невозможно использовать реальный бэкенд для полноценной разработки фронтенда. Тем более, что совсем недавно вышла новая мажорная версия библиотеки msw , и в ней достаточно много важных обновлений.

    habr.com/ru/articles/780200/

    #service_worker #mocks #mock #mock_service_worker #mock_server #api_mocking #моки #эмуляция_бэкенда #e2eтесты