Тестирование.NET кодирует в частичных доверительных средах

Вы можете либо сделать свою переменную non static

public final String TTT =  (String) getText(R.string.TTT);

, либо сделать метод getText статическим (если это вообще возможно)

5
задан Marinos An 17 January 2019 в 19:12
поделиться

4 ответа

Это - превосходный вопрос, особенно с точки зрения TDD и проверяющий код согласно различным доверительным сценариям.

Я думаю способ, которым я приблизился бы, это будет чем-то вроде -

  • Создайте AppDomain в моем коде TDD с помощью AppDomain. CreateDomain () перегрузка, которая позволяет Вам передавать в PermissionSet. PermissionSet был бы создан для соответствия различным доверительным сценариям, против которых Вы захотите протестировать.

  • Загрузите блок, содержащий логику под тестом в домен приложения

  • Создайте экземпляры методов типов/вызова и т.д. в домене приложения, захватите исключения безопасности

Что-то отчасти как этот. У меня не было времени для поднимания подтверждения концепции все же.

3
ответ дан 14 December 2019 в 01:22
поделиться

Функциональность, которую Вы ищете, встроена в Visual Studio:

На вкладке безопасности Вашего проекта существует кнопка "Advanced...", которые позволяют Вам настроить, хотите ли Вы отладить в полном доверии, или на указанном доверительном уровне.

3
ответ дан 14 December 2019 в 01:22
поделиться

Используйте Microsoft Application Verifier.

AppVerifier помогает определить:

  • Когда приложение использует API правильно: (Небезопасные API TerminateThread., Корректное использование API Локальной памяти потока (TLS)., o Корректное использование виртуальных манипуляций пространством (например, VirtualAlloc, MapViewOfFile).
  • Скрывает ли приложение нарушения прав доступа с помощью структурированной обработки исключений.
  • Пытается ли приложение использовать недопустимые дескрипторы.
  • Существуют ли повреждения памяти или проблемы в "куче".
  • Ли выполнение приложения из памяти под низкими ресурсами.
  • Происходит ли корректное использование критических разделов.
  • Будет ли приложение, работающее в административной среде, работать хорошо в среде с меньшим полномочием.
  • Существуют ли потенциальные проблемы, когда приложение работает как ограниченный пользователь.
  • Существуют ли неинициализированные переменные в будущих вызовах функции в контексте потока.
1
ответ дан 14 December 2019 в 01:22
поделиться

Необходимо посмотреть на Инструмент конфигурирования Платформы.NET. Это находится в SDK.NET, и можно найти инструкции относительно выполнения его здесь... http://msdn.microsoft.com/en-us/library/2bc0cxhc.aspx

В разделе Runtime Security Policy Вы найдете 3 уровня политики: Предприятие, Машина и Пользователь. Если Вы развернете в Машину или Пользователя, то Вы найдете определения Code Groups и Наборов полномочий. Когда Вы говорите, что хотите протестировать некоторый код.NET в частичных доверительных средах, я предполагаю, что Вы захотите протестировать против одного из стандартных наборов полномочий, уже определенных, таких как Интернет. Необходимо определить Code Group, которая соответствует приложению (или определенные блоки), и присвойте выбранный набор полномочий той Code Group.

Можно определить собственные Наборы полномочий также, но давайте сохраним это простым на данный момент.

Выберите, хотите ли Вы, чтобы Ваша новая группа кода существовала в объеме всей машины, или только для Вашей учетной записи пользователя и развертки на Машину или Пользовательский уровень политики соответственно. Вы будете видеть группу кода, названную _All _ Code_. Создайте дочернюю группу кода в той путем щелчка правой кнопкой и выбора Новый...

Дайте ему имя, скажем PartialTrustGroup, затем нажмите Далее.

Необходимо указать условие членства для этой группы, и существуют различные типы. Мне нравится создавать определенную папку под названием PartialTrust на моей машине и затем создавать условие членства URL, которое соответствует. Так, мой URL похож на это... file://c:/users/martin/documents/partialtrust/*

* подстановочный знак для ловли любого блока под тем путем. Нажать Далее.

Теперь можно выбрать набор полномочий для новой группы кода. На данный момент выберите Интернет. Это - вполне строгий набор, подобный песочнице апплета Java. Нажмите Далее и Конец.

Теперь щелкните правой кнопкой по своей новой группе кода и выберите Свойства. Во вкладке "Общие" удостоверьтесь, что самый верхний флажок устанавливается, затем нажмите "OK".

Теперь, любым блокам.NET, которые загружаются из местоположения под URL, который Вы указали, будут относиться к интернет-набору полномочий их. Ожидайте получать некоторый SecurityExceptions, если Вы не написали свой код для осторожного наблюдения уменьшенного набора полномочий.

Извините это - длинное описание. Это действительно намного более просто, чем это звучит.

1
ответ дан 14 December 2019 в 01:22
поделиться
Другие вопросы по тегам:

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