如何使用OCUnit / XCTest检查对象上是否存在属性?

时间:2013-10-15 09:16:08

标签: xcode tdd ocunit xctest

我正在尝试进一步拓展TDD的经验,我想知道如何检查某个类是否存在属性。具体来说,我想确保对象有一个双重命名的累加器。

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

#import <Foundation/Foundation.h>

@interface CSCalculatorModel : NSObject

@property (nonatomic) double accumulator;

@end

我知道我可以对对象使用如下测试,但是如何测试C标量?

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

1 个答案:

答案 0 :(得分:3)

要验证属性是否存在,请在类上调用+ instancesRespondToSelector以确保属性生成的getter方法存在:

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

Peter Hosey's answer to a similar question可能有助于弄清楚如何测试属性的类型。