Тестируемость
Помимо тестирования вашей библиотеки, убедитесь, что код, использующий её, также можно тестировать.
Избегайте глобального состояния и функций верхнего уровня с состоянием
Ваша библиотека не должна полагаться на состояние в глобальных переменных или предоставлять функции верхнего уровня с состоянием в составе своего публичного API. Такие переменные и функции затрудняют тестирование кода, использующего библиотеку, поскольку для тестов необходимо находить способы управлять этими глобальными значениями.
Например, библиотека может определять глобально доступную функцию, предоставляющую доступ к текущему времени:
val instant: Instant = Clock.now() println(instant)
Любой код, использующий этот API, будет трудно тестировать, поскольку вызов функции now() всегда будет возвращать реальное текущее время, тогда как в тестах часто желательно возвращать вместо него фиктивные значения.
Чтобы обеспечить возможность тестирования, библиотека kotlinx-datetime предоставляет API, позволяющий пользователям получить экземпляр Clock, а затем использовать его для получения текущего времени:
val clock: Clock = Clock.System val instant: Instant = clock.now() println(instant)
Это позволяет пользователям библиотеки внедрять экземпляр Clock в собственные классы и заменять реальную реализацию фиктивной во время тестирования.
Что дальше
Если вы ещё не сделали этого, ознакомьтесь со следующими страницами:
Узнайте о поддержании обратной совместимости на странице Обратная совместимость.
Подробный обзор эффективных практик документирования см. в разделе Информативная документация.
© 2010–2026 JetBrains s.r.o. and Kotlin Programming Language contributors
Licensed under the Apache License, Version 2.0.
https://kotlinlang.org/docs/api-guidelines-testability.html