Solidity. Смарт контракты и аудит
2.62K subscribers
246 photos
7 videos
18 files
550 links
Обучение Solidity. Уроки, аудит, разбор кода и популярных сервисов
Download Telegram
Добавление и настройка Solidity-Coverage

В уроке также упоминался npm пакет для проверки покрытия тестами вашего контракта по названием Solidity-Coverage.

Данный пакет поможет вам визуально понять, какие функции и условия уже были проверены, а какие еще нет.

Это удобно, в случае разработки больших контрактов на 500+ строк кода, когда ошибка может таиться в любом месте.

Итак, для установки пакета в консоли, в папке вашего проекта, потребуется прописать команду:

npm install --save-dev solidity-coverage

Затем следует открыть файл hardhat.config.js и в начале добавить строку:

require ("solidity-coverage")

После выполнения данных действий, вам становится доступна новая команда в hardhat

npx hardhat coverage

Также можно зайти в директорию вашего проекта -> Coverage и открыть index.html. Откроется веб страница, где вы также сможете увидеть покрытие тестами своего контракта.

#npm #coverage
Проверка покрытия тестами

Только для пользователей Linux, как я понял, есть новый инструмент для проверки покрытия тестами какого-либо контракта с использованием команды forge coverage.

Самое интересное в нем, что вам в файле контракта будут подсвечиваться строки, для которых уже были написаны тесты и те, которые пропустили. Пример на скрине.

В этой статье можно почитать про настройку и проведение тестов.

#linux #coverage #forge #foundry
4
Повышаем мастерство с Forge coverage

Я уже несколько раз писал на канале, что в скором времени компании будут нанимать отдельных разработчиков для написания тестов для своих протоколов. А знания и навыки работы с Hardhat или Foundry будут стоять в описаниях вакансий с Solidity, как это сейчас с JS/React. 

Вот и в этой статье рассказывается, что покрытие тестами на 100% не всегда означает, что проверены все возможные функции и линии в контракте. И разработчик должен уметь работать с отчетами покрытия, также как он работает с самими написаниями тестов.

Например, вы знали, что с foundry coverage можно запустить дополнительную команду report debug, которая покажет, какие строки и функции вы забыли протестировать?

Или, что с помощью forge coverage --report lcov можно сформировать отчет в html разметке?

Или, что, используя плагин Coverage Gutters, можно визуально в контракте увидеть код без тестов?

В общем, профессиональная команда тестировщиков должна будет выдавать отчет с абсолютным покрытием тестом и отчетом для клиента, где код будет светиться "зеленым" и везде будет 100% в таблице.

В статье даже есть репо, с которым вы можете потренироваться!

Советую всем и каждому повысить свои навыки в работе с Foundry.

#foundry #coverage
🔥6