Kiwi フレームワークで ReactiveCocoa コードをテストしようとしています。
コードは次のとおりです。
-(void)bindParentModel:(FEPVehiclePropertyModel*)theParentModel{
self.parentModel = theParentModel;
[RACObserve(self, parentModel.currentName) subscribeNext:^(NSString* modelName) {
self.avaliableVales = [FEPVehiclePropertyValuesContainer possibleVlauesForKey:modelName];
if (![self.avaliableVales containsObject:self.currentName]){
self.currentName = [self.avaliableVales firstObject];
}
}];
}
ここにテストケースがあります
it(@"check vehicle model binding", ^{
NSArray* carModel = [FEPVehiclePropertyValuesContainer possibleVlauesForKey:@"2013"];
FEPVehiclePropertyModel* model = [[FEPVehiclePropertyModel alloc] init];
FEPVehiclePropertyModel* parenModel = [[FEPVehiclePropertyModel alloc] init];
parenModel.parentModel = nil;
parenModel.avaliableVales = carModel;
parenModel.currentName = [carModel lastObject];
[model bindParentModel:parenModel];
parenModel.currentName = [parenModel.avaliableVales firstObject];
[[model.currentName should] equal:@"2.0L GTDI EcoBoost 6-speed manual"];
});
テスト ケースを実行するたびに、オブザーバーを追加しようとすると、RACKVOTrampoline クラスで EXC_BAD_ACCESS が発生します。
[self.target addObserver:self forKeyPath:self.keyPath options:options context:&RACKVOWrapperContext];
助言がありますか?
製品コードは ReactiveCocoa で問題なく動作します。