Спасибо Как раз то что нужно. Нужно будет найти все таки время на второе издание))) По поводу более гибко, не совсем согласен, в шарпе есть такая конструкция [assembly: InternalsVisibleTo("MyTestAssembly")], которая тоже дает подобные возможности. Конечно в идеале, хотелось бы, чтоб модуль помеченный #[cfg(test)] имел доступ к приватным свойствам всего crate, а не как сейчас только модуля в котором он находится
Я так понимаю, что идиоматичным в расте считается код для тестов нашпиговывать типажами и через них мокать всякое, а в приватную часть как раз не сильно лезть. Но это уже такое, филосовские холивары про подходы.
Тут видишь какое дело… я использую генератор rust-qt-binding-generator. Он мне генерирует 2 файла. В одном я сам себе хозяин, второй имеет все существующие обвязки с С(interface). И вот получается что я протестить получается это дело не могу, даже с написанием pub(crate) или прочего. Потому что не владею тем файлом совсем. А он создает структуру, которую передаст мне для работы. И ее я ни как замокать не могу…
Получается все равно придется делать какой-то объект аля logic и использовать его во всех местах. Плюс тесты на qt которые. Только так получается я смогу выйти из сложившейся ситуации.