Rifattorizzo questo:
Codice:
public void testDrawTwoFrames()
{
int frameSize = 32;
AnimatedSprite animatedSprite = createAnimatedSprite(3, 100, frameSize);
timer.advance(ANIMATION_DELAY);
animatedSprite.updateAnimation(timer.getTime());
animatedSprite.getSprite().draw(engine);
assertEquals("bad texture drawn", 0,
((MockEngine)engine).getImageRect().getLeft());
assertEquals("bad texture drawn", frameSize,
((MockEngine)engine).getImageRect().getTop());
timer.advance(100);
animatedSprite.updateAnimation(timer.getTime());
animatedSprite.getSprite().draw(engine);
assertEquals("bad texture drawn", 0,
((MockEngine)engine).getImageRect().getLeft());
assertEquals("bad texture drawn", frameSize * 2,
((MockEngine)engine).getImageRect().getTop());
}
Spezzato in 3 test. Ho aggiunto il test per il frame iniziale.
Codice:
public void testRenderingOfFirstFrame()
{
AnimatedSprite animatedSprite = createAnimatedSprite(2, 100, FRAME_SIZE);
animatedSprite.updateAnimation(timer.getTime());
animatedSprite.getSprite().draw(engine);
Rectangle expectedImageRectangle = new Rectangle(0, 0, FRAME_SIZE, FRAME_SIZE);
assertEquals(expectedImageRectangle, engine.getImageRect());
}
public void testRenderingOfSecondFrame()
{
AnimatedSprite animatedSprite = createAnimatedSprite(2, 100, FRAME_SIZE);
timer.advance(ANIMATION_DELAY);
animatedSprite.updateAnimation(timer.getTime());
animatedSprite.getSprite().draw(engine);
Rectangle expectedImageRectangle = new Rectangle(0, FRAME_SIZE, FRAME_SIZE, FRAME_SIZE);
assertEquals(expectedImageRectangle, engine.getImageRect());
}
public void testRenderingOfThirdFrame()
{
final int animationUpdateRate = 100;
AnimatedSprite animatedSprite = createAnimatedSprite(3, animationUpdateRate, FRAME_SIZE);
timer.advance(ANIMATION_DELAY);
timer.advance(animationUpdateRate);
animatedSprite.updateAnimation(timer.getTime());
animatedSprite.getSprite().draw(engine);
Rectangle expectedImageRectangle = new Rectangle(0, FRAME_SIZE * 2, FRAME_SIZE, FRAME_SIZE);
assertEquals(expectedImageRectangle, engine.getImageRect());
}
Si potrebbe fare ancora qualcosina ma mi accontento, e` abbastanza chiaro penso :o