Min

I have few comments in-line. 

-----Original Message-----
From: Min Chen [mailto:min.c...@citrix.com] 
Sent: Tuesday, November 27, 2012 3:10 PM
To: cloudstack-dev@incubator.apache.org
Subject: [DISCUSS]How to write API Unit Tests

Hi there,

        In working with API refactoring work, I cannot help wondering how we 
should write Junit test cases for our APIs. Recently I saw that Chip has merged 
some of his API unit test cases into master branch, and his api unit test cases 
are written using Mockito, so no DB and real MS are needed in running these 
Junit test cases. Here I want to raise this topic again to get some 
clarifications on api unit test guidelines:
        1. Should we require API unit test cases to be able to run without DB 
existing or MS running?
Animesh> Unit tests are meant to be run quickly and test only small portion of 
software independent of other things. In my opinion unit tests should not talk 
to database, communicate across network, require special environment changes 
like editing config files etc.
        2. If answer is yes, then I guess that we just need to use Mockito to 
write our api unit test cases.
Animesh> Yes using mock objects should be the way to go. Here is a classic 
paper  on  Unit testing with Mock Objects 
http://www.betgenius.com/mockobjects.pdf . 

        3. If answer is no, there are several follow-up questions to be 
clarified:
           1) Does test case itself need to handle starting MS and stopping MS?
           2) How should we set up a test DB? This may be needed for those list 
APIs.
           3) Testcases need to handle tear down test data afterwards.

        Thanks
        -min

Reply via email to