Ограничить доступ к блоку.NET?

Я делаю модульный тест для достижения максимального выполнимого покрытия. Если я не могу достигнуть некоторого кода, я осуществляю рефакторинг, пока покрытие не максимально полно

, После того, как закончено к ослеплению теста записи, я обычно пишу один тестовый сценарий, воспроизводящий каждую ошибку

, я используюсь для разделения между тестированием кода и интеграционным тестированием. Во время интеграционного тестирования, (которые являются также модульным тестом, но на группах компонентов, таким образом, не точно, что для модульного теста для) я протестирую на требования, которые будут реализованы правильно.

6
задан starblue 13 September 2009 в 07:00
поделиться

2 ответа

Вы можете создавать внутренние классы. И предоставьте указанным сборкам доступ к этим классам с помощью атрибута InternalsVisibleTo .

Сборка должна иметь строгое имя. Дополнительную информацию об атрибуте можно найти в этой статье .

6
ответ дан 9 December 2019 в 22:37
поделиться

Проблема с внутренними классами в том, что Internal не имеет смысла в IL, и классы можно вызывать через отражение. Таким образом, использование InternalsVisibleTo - это больше помощник для компилятора, чем что-либо еще.

Вы можете сделать еще один шаг, используя StrongNameIdentityPermission , который будет проверять открытый ключ сборки со строгим именем, вызываемой в код - если открытый ключ не совпадает, возникает исключение безопасности. Это принудительно, даже когда код вызывается через отражение.

5
ответ дан 9 December 2019 в 22:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: