bygg applikasjonen din testbar

Post on 28-Jun-2015

248 Views

Category:

Technology

3 Downloads

Preview:

Click to see full reader

DESCRIPTION

Slides from presentation at NTNU. Slides are in norwegian.

TRANSCRIPT

Bygg applikasjonen din testbar

Miniseminar NTNU

Janniche Haugen

Vedlikehold av tester over tid

Kravarbeid

INVEST

IndependentN

ValuableES

Testable

Om kravene dine virker detestable, må du gjøre noe med det

Et spørsmål om tid…

class Ordre {

Date lagretTidspunkt;

lagre() {

this.lagretTidspunkt = new Date();

(… resten av koden for å lagre…)

}

}

new Date(); new Date(); new Date(); new Date(); new Date(); new Date();

new Date(); new Date(); new Date(); new Date(); new Date(); new Date();new Date(); new Date(); new Date();new Date(); new Date(); new Date();new Date(); new Date(); new Date();new Date(); new Date(); new Date();new Date(); new Date(); new Date();new Date(); new Date(); new Date();new Date(); new Date(); new Date();new Date(); new Date(); new Date();new Date(); new Date(); new Date();

interface Klokke {

Date nå();

}

class Ordre {

Date lagretTidspunkt;

Klokke klokke;

public Ordre(Klokke klokke) {

this.klokke = klokke;

}

(…)

(…)

lagre() {

this.lagretTidspunkt = klokke.nå();

}

}

class SystemKlokke implements Klokke {

public Date nå() {

return new Date();

}

}

class JusterbarKlokke implements Klokke {

Date tid;

public Date nå() {

return tid;

}

public justerTid(Date tid) {

this.tid = tid;

}

}

@Test

public testSammenslåing() {

Klokke klokke = new JusterbarKlokke();

Ordre ordre1 = new Ordre(klokke);

Ordre ordre2 = new Ordre(klokke);

(…)

(…)

klokke.justerTid(new Date(10, 09, 21));

ordre1.lagre();

klokke.justerTid(new Date(10, 09, 22));

ordre2.lagre();

// sjekk ordre ikke sammenslått

}

Stub ut avhengigheter til tid for å gjøre koden din testbar

Altså:

For å bygge testbare applikasjoner

må vi tenkte testbarhet gjennom hele

utviklingsprosessen

spørsmål?

BEKK CONSULTING ASSKUR 39, VIPPETANGEN. P.O. BOX 134 SENTRUM, 0102 OSLO, NORWAY.

WWW.BEKK.NO

Janniche HaugenSenior Consultant+47 986 28 859

janniche.haugen@bekk.nomiss_haugen @ twitter

top related