2010-01-26 5 views
3

У меня есть некоторый код библиотеки Java, который иногда работает как неподписанный апплет. Из-за этого не всегда разрешено выполнять некоторые операции (например, проверка свойств системы).Как модульный тест Java-кода, который, как ожидается, будет выполняться в апплете Security Manager

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

Каков наилучший способ запуска этих модульных тестов с реалистичной конфигурацией Security-Manager? Предпочтительным решением будет то, что может интегрироваться с JUnit.

+0

Проверьте, может ли это помочь вам http://stackoverflow.com/questions/433065/what-is-the-best-mechanism-for-testing-applets – rsilva4

+0

Спасибо. Я не пытаюсь протестировать апплет как таковой (например, в моем коде нет интерфейса), это некоторый код библиотеки, который иногда связан и запускается в апплете (иногда кем-то другим). Я ничего не вижу в документации FEST о SecurityManager, но я посмотрю немного больше. – lexicalscope

ответ

2

Не решение как таковое, но вы не можете реализовать свой собственный подкласс SecurityManager, возможно, делегируя все вызовы «псевдо-менеджеру безопасности», который, в свою очередь, будет издеваться над EasyMock/подобным? Затем вы можете установить этот SecurityManager с помощью System.setSecurityManager().

Если вы знаете, что должен делать ваш апплет, вы можете пропустить тест в зависимости от ваших требований.

Возможно, я пропустил то, чего вы хотите достичь, но это похоже на один из возможных подходов.

+0

Знаете ли вы, как создать реалистичного менеджера безопасности Applet? Я немного ненавижу, пытаясь воспроизвести правила безопасности Applet самостоятельно, даже если бы я правильно их понял, я мог бы бороться за их обновление. Подход, который я сделал до сих пор, заключается в определении тонкого слоя адаптера между операциями с привилегиями безопасности и остальной частью моего кода, а затем я издеваюсь над этим слоем. Но я действительно хочу проверить интеграцию между моим кодом и реальным (или реалистичным) SecurityManager. – lexicalscope

+0

Я боюсь, что нет - возможно ли создать экземпляр менеджера безопасности Applet по имени класса? Возможно, вы могли бы найти это из тестового апплета? – Rich