Sauf si vous écrivez des pilotes de bas niveau, votre classe dépend indubitablement des autres classes pour effectuer les communications réelles. Dans ce cas, j'utiliserais l'injection de dépendance pour fournir ces classes ou ces wrappers autour d'eux, s'ils ne sont pas facilement moqués. Dans vos tests, vous fournissez une version fictive des classes dont vous dépendez (ou des wrappers si vous ne pouvez pas vous moquer des classes réelles). Vérifiez que les méthodes correctes avec les paramètres appropriés sont invoquées par vos méthodes sur les simulacres que vous fournissez. Assurez-vous de disposer de suffisamment de tests unitaires pour vous assurer que vous avez couvert toute la gamme des comportements à partir des dépendances réelles. Cela suffira pour vos tests unitaires.
Vous aurez également besoin de tests d'intégration. Malheureusement, la façon la plus simple de le faire est probablement de développer un serveur fictif complet avec lequel communiquer. Notez que votre serveur fictif n'a besoin de mettre en œuvre que l'interface - pas le code réel à l'autre extrémité. Fournissez des méthodes supplémentaires pour vous permettre de configurer le serveur pour vos tests d'intégration afin que le comportement attendu avec le serveur fictif se produise.