나는 구동 된 개발을 테스트하고 기본적인 질문이 있습니다. 단위 테스트를위한 개인 속성에 어떻게 액세스합니까? 방법에 접근하는 방법에 대한 답변이 많이 있지만 속성을 많이 찾을 수는 없습니다. 여기 내 수업 CDTest에 대한 내용이 있습니다. 일부 가독성을 위해 가져온 헤더 제외.개인 속성에 대한 OCUnit
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
같은 코드 냄새가 선언되어야하는, 보호 된 카테고리에 귀하의 재산을 선언합니다. 공개 API를 통해 전적으로 테스트 해보십시오. "하지만이게 정말 필요해."라고 말하면 시험에 귀를 기울여 라. 다른 반은 나간다. http://qualitycoding.org/testability-vs-hiding/ –