Я хотел бы написать библиотеку классов, которая создает для меня сложный объект, но должна быть показана только как можно меньше. Я хочу, чтобы он был включен в другие проекты, и есть только один звонок в эту библиотеку, например, возвращает мне объект внутреннего класса. Я не хочу разрешать другим создавать эти объекты явно, но все же я хочу создать тестовый проект для этой библиотеки классов.
Например:
var result = Manager.Instance.Create(definition)
Это должен быть единственный доступ к библиотеке классов.
На основе параметра определения он использует разные под-классы для создания запрошенного экземпляра и соответственно устанавливает его свойства. Поэтому я хочу как-то заверить в тестах, что весь процесс создания работал нормально. Но так как я также не хочу выставлять очень маленькие внутренние свойства объекта результата, я не могу тестировать, используя этот метод открытого доступа, так как у меня нет никаких свойств для утверждения.
Я знаю, что вы не должны тестировать внутреннюю механику, и это, как правило, плохой дизайн, и я также читал эту статью, но, возможно, нет создать библиотеку плюс проект unit test и, возможно, впоследствии ограничить доступ к этому классу? с оберткой или чем-то?