Keep on Balping Balp Skiver Om allt och alla…

28Jul/07Off

Test Driven Utveckling (del II)

I den förra delen av denna mini-kurs i TDD skapade vi ett test fall och lite kod till denna, nu är det dags att fortsätta. Våra unit-tester är gröna, i sig är det bättre att lämna programmet i rött, då har man en automatiskt bokmärke på vad man håller på med. Dags att titta på vad vi har, kunna få strängen i modersmålet ser ut att fungera, jag her en test som fungerar. Jag kommer inte direkt på något mer som behöver kontrolleras så jag tittar på nästa krav direkt i stället. Kunna få texten i det främmande språket. Testen borde vara mycket lik den för modes målet men med den del skillnader, t.ex. will jag inte ha "God dag" som svar, och jag vill ha en annan metod att anropa, getForeign(). Testen blir:

	public void testForegin() {
		final String nativeString = "God dag";
		Glossary godDag = new Glossary(nativeString);
		assertEquals("Konnichiwa", godDag.getForeign());
	}

Detta kompilerar inte måste lägga till en funktion i "Glossary". Återigen absolut enklaste möjliga kod.

	public String getForeign() {
		return "Konnichiwa";
	}

Så nu skall allt vara grönt igen. Även här ser vi att vi har upprepat kod, lite snabb refactoring tar bort detta. Jag ser också att testNative() och testForegin() delar på en hel del kod, lika bra att flytta ut den. GlossaryTest blir nu:

/**
 * Tests for Glossary.
 *
 * - Should be able to get string in native language
 * - Should be able to get string in foregin language
 * - Should be possible to compare both sting with input
 *
 */

package se.arnholm.tdd;

import junit.framework.TestCase;

public class GlossaryTest extends TestCase {
	final String nativeString = "God dag";
	final String foregin = "Konnichiwa";
	final Glossary godDag = new Glossary(nativeString, foregin);

	public void testNative() {
		assertEquals(nativeString, godDag.getNative());
	}

	public void testForegin() {
		assertEquals(foregin, godDag.getForeign());
	}
}

och Glossary:

package se.arnholm.tdd;

public class Glossary {
        private String nativeString;
	private String foreignString;

        public Glossary(String nativeName, String foreignName) {
                nativeString = nativeName;
                foreignString = foreignName;
        }

        public String getNative() {
                return nativeString;
        }

	public String getForeign() {
		return foreignString;
	}
}

Det tredje kravet att det skall vara möjligt att kolla indata mot båda strängarna är jag inte säker längre på vad jag tänkte mig, så jag får gå tillbaka till kunden. Fråga och diskutera hur det är tänkt att fungera. Diskunionerna leder fram till att det skall kunna gå att jämföra en inskriven text (String) med datat in glosan. Något som i alla fall ganska bra går för tillfället. Så jag lämnar det utan att göra någon mer test. Där med är klassen klar till det kommer nya krav.

Popularity: 5% [?]

Kommentarer (0) Trackbacks (0)

Ledsen, kommentering är avstängd.

Trackbacks är inaktiverade.

Additional comments powered by BackType