Yes, use RubyCocoa
I'm afraid I'm already hooked. ;) If it comes down to it, I've already put a testing-only category wrapper around one method, e.g. #import "Cell.h" @interface Cell (TestUtil) @property (readonly) NSArray* mapPointAsArray; @end @implementation Cell (TestUtil) @dynamic mapPointAsArray; // this method is simply for ruby-side testing - (NSArray*) mapPointAsArray { NSMutableArray* nsma = [[NSMutableArray alloc] initWithCapacity:2]; [nsma addObject:[NSNumber numberWithInt:mapPoint.row]]; [nsma addObject:[NSNumber numberWithInt:mapPoint.col]]; return [nsma autorelease]; } @end Not too much work to do it for the others. Of course, one could argue what I'm really testing here, but the craftsman in me says it's OK. Clay