Почему интерфейсы в Windows.Devices являются внутренними? - PullRequest
0 голосов
/ 05 декабря 2018

Я пишу внутренний пакет nuget для своей компании, который позволит приложениям в нашем наборе общаться с определенными устройствами Bluetooth для определенных рабочих процессов.Довольно классная штука!

Но когда я начинал проект, я пытался воспользоваться возможностью запустить TDD, так как начинал с нуля.Мне не потребовалось много времени, чтобы осознать что-то странное для меня:

Интерфейсы, в которых классы в пространстве имен Windows.Devices помечены как внутренние.

Я размышлял об этом в течение нескольких дней, но не могу не задать следующий вопрос: означает ли это, что кто-то, использующий bluetooth для Windows 8/10, не пишет НИКАКИХ тестов, где эти службы подвергаются насмешкам?Я должен обернуть / адаптировать каждый из этих классов, потому что их конструкция не тривиальна.Затем напишите интерфейс для обертки / адаптера, который по сути является лишь зеркалом интерфейса, который я мог бы использовать в своем уме ...

Вопросы:

  • Aren 't интерфейсы должны быть общедоступными?
  • Какую цель они служат, если они не имеют такой же доступности, как их реализации?
  • Кто-нибудь пишет модульные тесты для кода, использующего эти библиотеки?
  • Я что-то упустил, и есть способ издеваться над интерфейсами этих классов, несмотря на то, что они являются внутренними?
...