Книга ржавчины says, что использование модуля «тесты» является идиоматическим способом проведения модульных испытаний. Но я не вижу функцию из супермодуля в модуле тестов, если эта функция не отмечена «pub». Как следует проверять внутренние функции?Что такое идиоматический способ проверки частной функции?
Мой первый инстинкт должен был искать способ #ifdef
ключевое слово pub
. Я сделал это в прошлом для тестирования на C++. Для Rust я сделал просто тесты для частных функций в модуле, а затем тесты для открытого интерфейса в модуле «тесты».
Я делаю это правильно?
Я сделал это сначала, но я делал 'use super :: *'. Если я просто явно использую super :: some_function', он работает, как вы описываете. Благодарю. –
@SeanPerry AFAIK glob import не включает функции, только типы. Один из немногих раз, когда я использую импорт glob, - это когда я пишу свой тестовый модуль, поскольку обычно я хочу проверить все в родительском модуле. – Shepmaster