Functional BDD at Cuke Up

Preview:

DESCRIPTION

Functional BDD talk demonstrating the TickSpec .Net framework at the Cuke Up (Cucumber) conference

Citation preview

FUNCTIONAL BDDPhillip Trelford 2011

http://trelford.com/blog

@ptrelford

FIRST STEPS IN BDD ON .NET

• Shell• C# & F#

StorEvil

• Visual Studio

• C#

SpecFlow

• F# & C#• VS & Shell

?

?

Visual Studio

NUnitGherkin

LOOK NO HANDS

LOOK NO HANDS

TICKSPEC DESIGN GOALS

Platform for Innovation Lightweight Flexible Framework Extensible Parser

Support & Leverage F# Tick methods Modules Active Patterns

Support major test frameworks NUnit, xUnit, MbUnit Silverlight Unit Test

INCEPTION

<200 lines of code Parser

Regular Expressions Given, When, Then And or But

Runner Reflection Attributed methods

Monday

August

302010

TICKSPEC

F#

Strongly Typed Functional Object Orientated Open Source .Net language In Visual Studio

SYNTAX

let x = 1

let add (lhs,rhs) = lhs + rhs

[1;2;3;4] |> List.iter

(fun item -> puts item)

raise (Exception("Bang"))

x = 1

def add(lhs,rhs) lhs + rhs end

[1,2,3,4].each

{|item| puts item}

raise 'Bang'

F# Ruby

CLASS

type Person(name,age) =

member person.Name = name

member person.Age = age

override person.ToString() =

sprintf "%s %d" name age

class Person

def initialize(name,age)

@name, @age = name, age

end

def name

@name

end

def age

@age

end

def to_s

"#@name (#@age)"

end

end

F# Ruby

VS INTEGRATION

WHAT NEXT?

MIX 11• Las Vegas • Monday April 11th

DDD Scotland• Glasgow• Saturday May 7th

F#unctional Londoners Meetup• Skills Matter, London• Every 6 weeks

Recommended