我有一个对象A,它有一个返回模拟对象的属性。然后我向对象A询问valueForKeyPath:
,其中路径是模拟对象属性的路径。我可以在调试器中看到valueForKeyPath:
在对象A上正确执行,并且在对象A上调用valueForKey:
,它返回模拟对象。但是,模拟对象永远不会调用valueForKeyPath:
或valueForKey:
。
这是我的模拟创作:
self.reservationMock = [OCMockObject niceMockForClass:[Reservation class]];
self.sut = [[Controller alloc] initWithReservation:self.reservationMock];
模拟存储在reservation
中。我在reservation.reservationMode
上使用sut
评估谓词。
我收到以下电话:
valueForKeyPath:@"reservation.reservationMode"
valueForKey:@"reservation"
就是这样。如果我不模拟对象,则评估将继续对Reservation
对象进行以下调用。
valueForKeyPath:@"reservationMode"
valueForKey:@"reservationMode"
知道这里发生了什么吗?