gpt4 book ai didi

ios - 私有(private)属性(property)上的 OCUnit

转载 作者:行者123 更新时间:2023-11-29 03:40:11 24 4
gpt4 key购买 nike

我是测试驱动开发的新手,有一个基本问题。如何访问私有(private)属性以进行单元测试?关于如何访问方法有很多答案,但我找不到太多关于属性的答案。这是我现在为 CDTest 类准备的内容。出于可读性目的,排除了一些导入的 header 。

CDTest.h

@interface CDTest : NSObject

@end

CDTest.m

#import "CDTest.h"
#import "CDTest+Protected.h"

@interface CDTest()

@property (strong, nonatomic) NSManagedObjectContext *context;

@end

@implementation CDTest

- (void)setup
{
//Sets up the context
}

@end

CDTest+Protected.h

@interface CDTest()

- (void)setup;

@end

单元测试.m文件

#import "CDTest.h"
#import "CDTest+Protected.h"

@implementation CDTestTests
{
CDTest *cdTest;
}

- (void)setUp
{
[super setUp];
cdTest = [CDTest new];
}

- (void)testSetup
{
[cdTest setup];
//Now I need access to the properties in cdTest to validate them
}

@end

最佳答案

在 Objective-C 中,属性是方法(每个属性都是一个 getter 和一个 setter,如果它是读/写的话)。

只需在 protected 类别中声明您的属性(property),应该像这样声明

@interface CDTest(Protected)

- (void)setup;
@property (strong, nonatomic) NSManagedObjectContext *context;

@end

关于ios - 私有(private)属性(property)上的 OCUnit,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18561528/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com