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

标签 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");
}

最佳答案

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

关于xcode - 如何使用 OCUnit/XCTest 检查对象上是否存在属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19377431/

相关文章:

ios - Xcode - 错误 ITMS-90635 - bundle 中的 Mach-O 无效 - 正在提交到应用商店

objective-c - Objective-C 项目的 CMakeLists.txt

ios - 只能在 Xcode 模拟器中加载 watch 应用程序或 Phone 应用程序

c# - 在不调用 Add 方法的情况下测试 Remove 方法

iphone - 如何使用 Xcode 4 和 OCUnit 运行应用程序测试?

ios - 代码 7 : Unable to Convert OCUnit to XCTest

c++ - 无法从终端编译c++文件

sql-server - tSQLt:在 SetUp 和测试之间共享数据

django - 在 Django 中测试 "different layers"的最佳实践是什么?

iphone - 如何在命令行中捕获 OCUnit 的测试失败/成功?