iOS 응용 프로그램 테스트에 XCTest
과 OCMock
의 조합을 사용하고 있습니다. UITableViewController
을 사용하여 몇 가지 테스트를 작성하고자하는 일련의 프로토 타입 셀을 표시합니다. 셀 자체가 스토리 보드에 있으므로 펜촉에서 인스턴스화 할 수 있다고 생각하지 않습니다.테스트 용 스토리 보드에서 프로토 타입 UITableViewCell을 인스턴스화하는 방법이 있습니까?
셀을 사용하여 인스턴스화하는 유일한 방법은 viewController
입니까?
내가 사용하고있는 맞춤 셀 클래스에는 스토리 보드의 프로토 타입에 연결된 여러 개의 'IBOutlets'이 있습니다. 내가 [[QRFeedAdCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"feedAdCell"];
를 사용하여 셀을 인스턴스화 시도했다하지만이 전무로 설정의 모든 속성과 셀을로드
@interface QRFeedAdCell : UITableViewCell
@property (strong, nonatomic) IBOutlet UIImageView *mainImageView;
@property (strong, nonatomic) IBOutlet UIImageView *blurredImageView;
@property (strong, nonatomic) IBOutlet UILabel *titleLabel;
@property (strong, nonatomic) IBOutlet UIButton *someButton;
@property (strong, nonatomic) IBOutlet UILabel *someLabel;
@property (strong, nonatomic) IBOutlet UILabel *anotherLabel;
@property (nonatomic) BOOL isBusy;
@end
: 셀 클래스는 다음과 같이 보인다.
는 또한 셀 등록을 시도했지만, 테스트는 실패 :id mockTableView = [OCMockObject niceMockForClass:[UITableView class]];
[mockTableView registerClass:[QRFeedAdCell class] forCellReuseIdentifier:@"feedAdCell"];
QRFeedAdCell *cell = [mockTableView dequeueReusableCellWithIdentifier:@"feedAdCell"];
XCTAssertNotNil(cell, @"");
XCTAssertNotNil(cell.mainImageView, @"");
그게 내가 한거야, 나는 몇 가지 더 시도했지만 이것은 유일한 해결책 인 것 같다. 감사. – psobko