2010-01-26 9 views
3

J'ai un code de bibliothèque Java qui s'exécute parfois sous la forme d'une applet non signée. Pour cette raison, il n'est pas toujours autorisé à effectuer certaines opérations (par exemple, vérifier les propriétés du système). Je souhaite exécuter des tests unitaires avec un gestionnaire de sécurité de type Applet afin de pouvoir vérifier que le code n'exécute aucune opération restreinte ou gère correctement les exceptions de sécurité. Quelle est la meilleure façon d'exécuter ces tests unitaires avec une configuration Security-Manager réaliste?Comment tester unitaire le code Java qui doit s'exécuter dans une applet Security Manager

Préférer la solution serait quelque chose qui peut s'intégrer avec JUnit.

+0

vérifier si cela peut vous aider http://stackoverflow.com/questions/433065/what-is-the-best-mechanism-for-testing-applets – rsilva4

+0

Merci. Je n'essaie pas de tester une applet en tant que telle (par exemple, il n'y a pas d'interface utilisateur dans mon code), c'est un code de bibliothèque qui est parfois lié et exécuté dans une applet (parfois par quelqu'un d'autre). Je ne vois rien dans la documentation FEST sur SecurityManager, mais je vais regarder un peu plus loin. – lexicalscope

Répondre

2

Pas une solution en tant que telle, mais vous ne pouviez pas implémenter votre propre sous-classe de SecurityManager, en déléguant peut-être tous les appels à un pseudo gestionnaire de sécurité qui serait à son tour raillé par EasyMock? Vous pouvez ensuite définir ce SecurityManager en utilisant System.setSecurityManager().

Si vous savez ce que votre applet devrait être capable de faire, vous pouvez échouer le test en fonction de vos besoins.

J'ai peut-être manqué ce que vous voulez accomplir, mais cela semble être une approche possible.

+0

Connaissez-vous un moyen de créer un gestionnaire de sécurité Applet réaliste? Je suis un peu détesté d'essayer de reproduire moi-même les règles de sécurité de l'applet, même si je les ai bien faites, je pourrais avoir du mal à les tenir à jour. L'approche que j'ai prise jusqu'ici est de définir une couche d'adaptateur mince entre les opérations privilégiées de sécurité et le reste de mon code, puis je me moque de cette couche. Mais je pense que je veux vraiment tester l'intégration entre mon code et le vrai (ou réaliste) SecurityManager. – lexicalscope

+0

Je crains de ne pas - est-il possible d'instancier le gestionnaire de sécurité Applet par nom de classe? Peut-être que vous pourriez trouver cela à partir d'une applet de test? – Rich