I\'m trying to mock the SecurityManager
class. When I run the following code, Mockito throws an exception:
@After
public void tearDown()
{
PS! You could also mock static method call to getSecurityManager() method.
Mocking Static Method See maunal at http://code.google.com/p/powermock/wiki/MockitoUsage
Add @PrepareForTest at class level.
@PrepareForTest(System.class); // System.class contains static methods
Call PowerMockito.mockStatic() to mock a static class (use PowerMockito.mockStaticPartial(class, method) to mock a specific method):
PowerMockito.mockStatic(System.class);
Just use Mockito.when() to setup your expectation:
Mockito.when(System.getSecurityManager()).thenReturn(securityManagerMock);
When you change the SecurityManager, you should reset it to the original SecurityManager after the test.
You may use the System Rules library for your test. Setting and resetting the security manager are just two lines of code with this rule.
@Rule
public ProvideSecurityManager provideSecurityManager
= new ProvideSecurityManager(yourSecurityManager);
Within your test yourSecurityManager is used and outside of the test the original security manager is used.