2

我正在尝试使用 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 一起使用。

4

0 回答 0