From 81fd561e8589c73e43959c711cb921779a1ad606 Mon Sep 17 00:00:00 2001 From: Jonathan Wright Date: Sun, 6 Jan 2008 16:50:53 +1300 Subject: [PATCH] Adding setup and teardown methods --- spec.io | 21 +++++++++++++++++++-- user-spec.io | 9 +++++++-- 2 files changed, 26 insertions(+), 4 deletions(-) diff --git a/spec.io b/spec.io index bb5b6cf..6499d91 100644 --- a/spec.io +++ b/spec.io @@ -8,6 +8,19 @@ Object verify := method( ) ) +BodyContext := Object clone do( + newSlot("setupMessage", Message) + newSlot("teardownMessage", Message) + + setup := method( + setupMessage = call argAt(0) + ) + + teardown := method( + teardownMessage = call argAt(0) + ) +) + describe := method( if(call argCount == 1, stateSlotName := nil @@ -19,7 +32,7 @@ describe := method( bodyMessage := call argAt(2) ) - bodyContext := Object clone + bodyContext := BodyContext clone if(stateSlotName, bodyContext setSlot(stateSlotName, @@ -27,7 +40,11 @@ describe := method( Lobby exampleCount = exampleCount + 1 testContext := Object clone - e := try(call argAt(1) doInContext(testContext)) + e := try( + setupMessage doInContext(testContext) + call argAt(1) doInContext(testContext) + teardownMessage doInContext(testContext) + ) if(e, failureErrors append(e) writeln(" - ", shouldName, " [Error ", failureErrors size, "]") diff --git a/user-spec.io b/user-spec.io index 4f4e0ff..a70c54c 100644 --- a/user-spec.io +++ b/user-spec.io @@ -1,13 +1,18 @@ describe(webUser, WebUser, + setup( + user := WebUser clone + ) + + teardown( + user = nil + ) webUser("should be in any roles assigned to it", - user := WebUser clone user assignRole("assigned role") user verify(inRole("assigned role")) ) webUser("should NOT be in any roles not assigned to it", - user := WebUser clone user verify(inRole("assigned role") not) ) )