From 8b7cdbf5a9ac750f55d76609a107ca54f47f5c86 Mon Sep 17 00:00:00 2001 From: Peter Jihoon Kim Date: Mon, 1 Nov 2010 00:33:03 +0800 Subject: [PATCH] added support for context, xcontext, xdescribe and xit --- Source/CDRSpec.m | 16 ++++++++++++++++ Source/Headers/CDRSpec.h | 4 ++++ Spec/SpecSpec.m | 21 +++++++++++++++++++++ 3 files changed, 41 insertions(+) diff --git a/Source/CDRSpec.m b/Source/CDRSpec.m index 442fa006..cad0bc27 100644 --- a/Source/CDRSpec.m +++ b/Source/CDRSpec.m @@ -31,6 +31,22 @@ void fail(NSString *reason) { [[CDRSpecFailure specFailureWithReason:[NSString stringWithFormat:@"Failure: %@", reason]] raise]; } +void context(NSString *text, CDRSpecBlock block) { + describe(text, block); +} + +void xcontext(NSString *text, CDRSpecBlock block) { + it(text, PENDING); +} + +void xdescribe(NSString *text, CDRSpecBlock block) { + it(text, PENDING); +} + +void xit(NSString *text, CDRSpecBlock block) { + it(text, PENDING); +} + @implementation CDRSpec @synthesize currentGroup = currentGroup_, rootGroup = rootGroup_; diff --git a/Source/Headers/CDRSpec.h b/Source/Headers/CDRSpec.h index b2f2d5aa..cc544281 100644 --- a/Source/Headers/CDRSpec.h +++ b/Source/Headers/CDRSpec.h @@ -17,6 +17,10 @@ void beforeEach(CDRSpecBlock); void afterEach(CDRSpecBlock); void it(NSString *, CDRSpecBlock); void fail(NSString *); +void context(NSString *, CDRSpecBlock); +void xcontext(NSString *, CDRSpecBlock); +void xdescribe(NSString *, CDRSpecBlock); +void xit(NSString *, CDRSpecBlock); #ifdef __cplusplus } #endif diff --git a/Spec/SpecSpec.m b/Spec/SpecSpec.m index ecb1b129..01ce987b 100644 --- a/Spec/SpecSpec.m +++ b/Spec/SpecSpec.m @@ -54,12 +54,33 @@ void expectFailure(CDRSpecBlock block) { }); }); + context(@"a nested spec (context)", ^ { + beforeEach(^ { + // NSLog(@"=====================> I should run only before the nested specs."); + }); + + afterEach(^ { + // NSLog(@"=====================> I should run only after the nested specs."); + }); + + it(@"should also run", ^ { + // NSLog(@"=====================> Nested spec"); + }); + + it(@"should also also run", ^ { + // NSLog(@"=====================> Another nested spec"); + }); + }); + it(@"should run", ^ { // NSLog(@"=====================> Spec"); }); it(@"should be pending", PENDING); it(@"should also be pending", nil); + xit(@"should also be pending (xit)", ^{}); + xcontext(@"xcontexted specs should be pending", ^{}); + xdescribe(@"xdescribed specs should be pending", ^{}); }); describe(@"The spec failure exception", ^{