【问题标题】:How can I check a property exists on an object using OCUnit/XCTest?如何使用 OCUnit/XCTest 检查对象上是否存在属性?
【发布时间】:2013-10-23 00:48:26
【问题描述】:

我正在尝试进一步了解我在 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");
}

【问题讨论】:

  • 只检查它是否为 0 是否合适?例如。 XCTAssert(calculator.accumulator == 0.0, @"Accumulator property does not exist on calculator class");

标签: xcode tdd ocunit xctest


【解决方案1】:

要验证属性是否存在,请在您的类上调用 +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 可能有助于弄清楚如何测试属性的类型。

【讨论】:

    猜你喜欢
    • 2020-06-20
    • 1970-01-01
    • 2021-10-08
    • 2019-03-27
    • 2020-05-08
    • 1970-01-01
    • 1970-01-01
    • 2016-01-17
    • 1970-01-01
    相关资源
    最近更新 更多