Документация не должна заменяться кодом модульного тестирования, точка.
Документация предназначена для программиста, который пытается использовать и понимать ваш API.
Модульные тесты ориентированы на охват угловых случаев, и хотя они должны быть задокументированы, они не должны быть в центре внимания нового пользователя вашего API.
Документация должна постепенно накапливаться, модульные тесты должны быть как можно более простыми, но настолько сложными, насколько это необходимо для проверки функциональности.
Например, у вас может быть много модульных тестов, которые выглядят очень похожими, но имеют незначительные различия, только для того, чтобы охватить различные случаи странного угла и подтвердить правильное поведение.
Вместо того, чтобы пользователь вашего API расшифровал эти модульные тесты, выясните различия и выясните, почему это должно приводить к другому (или, возможно, одинаковому) поведению, что не является хорошим учебным пособием.
Модульные тесты предназначены для сопровождающих вашего API, программистов, которые исправят ошибки в нем, или добавят в него новые функции, или проведут рефакторинг, или ....
Документация предназначена для программистов, которые будут использовать ваш API.
Это не одна и та же целевая аудитория.
Одним из таких тонких отличий может быть то, что, хотя модульный тест утверждает, что когда функция получает отрицательное значение, она будет делать что-то конкретное, в документации вместо этого будут подробно рассказываться о , почему это конкретное решение выбрал. Если вся документация просто переписывает код на английский, то в этом нет особого смысла, поэтому документация обычно более многословна и пояснительна, чем код.