TDD v2.0 = BDD

2 01 2009

Es gibt man wieder was neues, was die Art des Automatisierten Testens angeht. Das ganze nennt sich „Behavior-driven development“.

Mal abgestehen davon, dass es noch nicht genug Akronyme gibt, ist der Ansatz des Testens schon interessant.
Hatte man bei TDD noch eine starke Koplung zwischen Klasse, Methode und Test (je Methode eine Testmethode), schreibt man bei BDD „Specs“ oder Szenarien nach dem Muster: Ausgangssituation, Aktion, erwarteter Zustand (given, when, then). Damit ist der Test näher an einem Fach-Testkonzept und der Testcode robuster bei Refactorings, da die Spec sich nicht ändert.

Neben der Groovy basierten Implementierung easyb gibt es nun auch die scriptfreihe auf Junit basierende JBehave Implementierung.

Behaver-driven develpoment Artikel auf JavaWorld

Und da Code sehr überzeugend sein kann ein kleines Beispiel:

public class AccountDepositSteps extends Steps {

Account account = null;
BigDecimal initialDeposit = new BigDecimal(„100.00″);

@Given(„I have created a new account“)
public void createAccount() {
account = new Account();
}

@When(„I deposit $100 into the account“)
public void deposit() {
account.makeDeposit(initialDeposit);
}

@Then(„My account should have a balance of $100″)
public void checkBalance() {
ensureThat(account.getBalance(), equalTo(initialDeposit));
}
}


Aktionen

Information

Kommentieren