OO style examples for oojspec

by rosenfeld

HTML

<script src="http://oojspec.herokuapp.com/assets/oojspec.js"></script>
<link rel="stylesheet" href="http://oojspec.herokuapp.com/assets/oojspec.css">

CoffeeScript

oojspec.exposeAll()

describe class
  @description: 'Bare class'
  @bare: true

  runSpecs: (dsl)->
    @dialog = dialog: true
    dsl.example 'an example', @anExample
    dsl.context 'in some context', @aContext
    dsl.describe NonBareClass

  anExample: (s)-> s.expect(@dialog).toEqual dialog: true

  aContext: (s)-> s.example 'another example', (s)-> s.refute @describe

class NonBareClass
  runSpecs: ->
    @dialog = dialog: true
    @example 'an example', @anExample
    @context 'in some context', @aContext

  anExample: -> @expect(@dialog).toEqual dialog: true

  aContext: -> @example 'another example', -> @refute @describe

describe
  description: 'Plain Object binding'
  dialog: {dialog: true}
  runSpecs: -> @example 'an example', @sampleExample
  sampleExample: -> @assert @dialog.dialog
    
oojspec.runSpecs()