[Engine-devel] Getting rid of PowerMock?

Yair Zaslavsky yzaslavs at redhat.com
Tue Mar 27 17:33:18 UTC 2012


Hi all,
As (almost) all of us can see,
Running BLL tests both takes considerable time, and also we have to take
class loading dependencies between classes with static methods when we
use mockStatic - IMHO, this is kinda frustrating.
Maybe we should start get rid of  PowerMock.
Here is what I'm thinking of -
Currently, as we use no IoC for DAOs , for tested class we do not use
DbFacade.getInstance().getXXXDao()

instead we define:

protected XXXDao getXXXDao() {
  return DBFacade.getInstance().getXXXDao();
}

And then in our tests we use Mockito to define how getXXDao acts in the
test.

The following can be achieved also for config values , the following way -

protected <T> T getConfig(ConfigValues key) {
        return Config.<T> GetValue(key);
    }

And then in code (for example, in a query test) -

 doReturn(5).when(query).<Integer>
getConfig(any(ConfigValues.SomeIntegerConstant));


This effort can be done in small steps -
a. Define getConfig method in base classes (i.e AuditLoggalbeBase).
b. Rewrite parts (i.e Commands, and their tests) step by step (small
commits)

Thoughts and ideas are more than welcome,

Yair



More information about the Devel mailing list