Hi,
This question is related to PHPUnit, although it should be a global xUnit design question.
I'm writing a Unit test case for a class Image.
One of the methods of this class is setBackgroundColor().
There are 4 different behaviors I need to test for this method,
- Trying to set an invalid background color. Multiple invalid parameters will be tested.
 - Trying to set a valid background color using a short hand RGB array, e.g. 
array(255,255,255) - Trying to set a valid background color using a standard RGB array, e.g. 
array('red' => 255, 'green' => 255, 'blue' => 255)(this is the output format of the GD functionimagecolorsforindex()) - Trying to set a valid background color using the transparent constant 
IMG_COLOR_TRANSPARENT 
At the moment, I have all this contained within 1 test in my test case called testSetBackgroundColor(), however I'm getting the feeling these should be 4 separate tests as the test is getting quite long and doing a lot.
My question is, what should I do here? Do I encapsulate all this into 1 test of the Image test case, or do I split the above into separate tests like,
testSetBackgroundColorErrorstestSetBackgroundColorShorthandRGBtestSetBackgroundColorRGBtestSetBackgroundColorTransparent
I've put the test in question here http://pastebin.com/f561fc1ab.
Thank