В общем, частные члены не должны подвергаться модульному тестированию, поскольку все, что класс делает со своими закрытыми членами, должно как-то отражаться на внешне тестируемом поведении объекта.Другими словами, кого волнует, что там происходит, если его внешнее поведение таково, каким оно должно быть.
Юнит-тестирование частных членов также связывает ваши тесты с внутренними компонентами класса, делая их более хрупкими.Если в будущем вы решите использовать более эффективную коллекцию, ваши тесты будут сорваны, даже если поведение объекта не изменилось.Вы особенно хотите избежать рефлексии, так как поиск свойств по имени означает, что ваши тесты прерываются, если имя свойства когда-либо меняется.
Другими словами - если вам нужно протестировать класс Address
, делайте это самостоятельномодульные тесты, а не из LabelPrinter
тестов.Если вы должны использовать один из двух ваших методов, используйте второй, а не рефлексию.