Hi all,

Yesterday I started working on the LibvirtComputingResource class in order to 
apply the same patterns I used in the CitrixResourceBase + add more unit tests 
to it After 10 hours of work I got a bit stuck with the 1st test, which would 
cover the refactored LibvirtStopCommandWrapper. Why did I get stuck? The class 
used a few static methods that call native libraries, which I would like to 
mock. However, when writing the tests I faced problems with the current 
Mockito/PowerMock we are using: they are simply not enough for the task.

What did I do then? I added a dependency to EasyMock and PowerMock-EasyMock 
API. It worked almost fine, but I had to add a “-noverify” to both my Eclipse 
Runtime configuration and also to the cloud-plugin-hypervisor-kvm/pom.xml file. 
I agree that’s not nice, but was my first attempt of getting it to work. After 
trying to first full build I faced more problems related to 
ClassDefNotFoundExpcetion which were complaining about Mockito classes. I then 
found out that adding the PowerMockRunner to all the tests classes was going to 
be a heavy burden and would also mess up future changes (e.g. the -noverify 
flag was removed from Java 8, thus adding it now would be a problem soon).

Now that the first 2 paragraphs explain a bit about the problem, let’s get to 
the solution: Java 8

The VerifyError that I was getting was due to the use of the latest EasyMock  
release (3.3.1). I tried to downgrade it to 3.1/3.2 but it also did not work. 
My decision: do not refactor if the proper tests cannot be added. This left me 
with one action: migrate to Java 8.

There were mentions about Java 8 in february[1] and now I will put some energy 
in making it happen.

What is your opinion on it?

Thanks in advance.

Cheers,
Wilder

http://mail-archives.apache.org/mod_mbox/cloudstack-dev/201502.mbox/%3c54eef6be.5040...@shapeblue.com%3E<http://mail-archives.apache.org/mod_mbox/cloudstack-dev/201502.mbox/<54eef6be.5040...@shapeblue.com>>

Reply via email to