我有一个动态改变行数的pickerView。我想从主应用目标中的模型中选择此计数。
例如, //测试目标
#import <KIF/KIF.h>
#import "SearchModel.h" //import class from main target
@interface Acceptance_Tests : KIFTestCase
@property (nonatomic, strong) SearchModel * searchModel;
@end
@implementation Acceptance_Tests
-(void)test_01_SearchWithConditions
{
self.searchModel = [[SearchModel alloc] init];
[tester tapViewWithAccessibilityLabel:@"Search Library"];
[tester tapViewWithAccessibilityLabel:@"type_pickerView"];
//choose type
for(int i = 0; i < self.searchModel.types.count; i++)
{
[tester waitForTappableViewWithAccessibilityLabel:@"Search"];
[tester selectPickerViewRowWithTitle:[self.searchModel.types objectAtIndex:i]];
[tester tapViewWithAccessibilityLabel:@"Search"];
}
}
当我做Cmnd + U时出现错误
Undefined symbols for architecture x86_64:
"_OBJC_CLASS_$_SearchModel", referenced from:
objc-class-ref in Acceptance_Tests.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
此外,我可以将SearchModel.m添加到测试目标中的Compile Cources,但这意味着我必须添加所有类两次(在主目标和测试目标中),mm。 有什么想法吗?我可以通过其他方式访问主目标中的类 ?
答案 0 :(得分:0)
测试(也包括KIF测试)被捆绑为正在测试的主机应用程序的一部分。确保在项目的“构建设置”中都将“链接”下的“捆绑包加载程序”和“测试”下的“测试主机”设置为应用程序二进制文件。如果您已将KIF目标创建为“ iOS单元测试包”,则应默认设置。
答案 1 :(得分:-1)
编译错误告诉你什么是错的。您正在以x64模式运行KIF测试(在build_settings中检查您的体系结构和有效体系结构。那里有arm64吗?)您的目标应用程序可能没有相同的体系结构设置。
首先,我会确保您的KIF测试目标与您的应用之间的架构设置相同。