Question

I'm trying to further my experience with TDD, and I'd like to know how I can check if a property exists on a class. Specifically, I want to ensure the object has a double named accumulator.

//
//  CSCalculatorModel.h
//  Calculator
//

#import <Foundation/Foundation.h>

@interface CSCalculatorModel : NSObject

@property (nonatomic) double accumulator;

@end

I know I can use tests like the following for objects, but how do I test C scalars?

- (void)testExample
{
    XCTAssertNotNil(calculatorClass.accumulator, @"Accumulator property does not exist on calculator class");
}
Was it helpful?

Solution

To verify the property's existence, call +instancesRespondToSelector on your class to make sure the property's generated getter method exists:

- (void)testExample {
    XCTAssertTrue([CSCalculatorModel instancesRespondToSelector:@selector(accumulator)], @"Accumulator property does not exist on calculator class");
}

Peter Hosey's answer to a similar question might be helpful for figuring out how to test the property's type.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top