Исправление AndreyKl, (текущая версия) :
А я ещё раз повторю: когда ты проверяешь логику тестами, ты проверяешь и типы (неявно), поэтому отдельно (явно) проверять типы смысла нет.
либо ты не понял, либо мысла спорить нет. поясню ещё раз: _всю_ логику проверять тестами не нужно.
например, если список имеет тип выражающий его длину и компилятор гарантирует невыход за пределы списка, то не нужно писать на тесты на выход за пределы.
если компилятор (посредсвом системы типов) гарантирует что входные данные всегда проверяются и эскейпаются, то не нужно писать тест на проверку эскейпа.
Ещё раз, количество тестов уменьшается. Если при этом подключить доказательства, то в пределе стемиться к нулю. При этом типы проще и изоморфны коду в любом случае (т.е. их нельзя как тесты написать «неправильно» или «неполно»). Писать типы просто. Например, написать read a :: Int значительно проще чем написать тест который проверит выбросил ли ты исключение или нет если пришёл не инт.
Либо ты не хочешь видеть что я тебе написал, либо я вообще перестал понимать о чём разговор.
Исходная версия AndreyKl, :
А я ещё раз повторю: когда ты проверяешь логику тестами, ты проверяешь и типы (неявно), поэтому отдельно (явно) проверять типы смысла нет.
либо ты не понял, либо мысла спорить нет. поясню ещё раз: _всю_ логику проверять тестами не нужно.
например, если список имеет тип выражающий его длину и компилятор гарантирует невыход за пределы списка, то не нужно писать на тесты на выход за пределы.
если компилятор (посредсвом системы типов) гарантирует что входные данные всегда проверяются и эскейпаются, то не нужно писать тест на проверку эскейпа.
Ещё раз, количество тестов уменьшается. Если при этом подключить доказательства, то в пределе стемиться к нулю. При этом типы проще и изоморфны коду в любом случае (т.е. их нельзя как тесты написать «неправильно» или «неполно»). Писать типы просто. Например, написать read a :: Int значительно проще чем написать тест который проверит выбросил ли ты исключение или нет если пришёл не инт.
Либо ты не хочешь видеть что я тебе написал, либо я вообще не понимаю о чём разговор.