我正在尝试在UIButton
上存入所选属性。吸气剂定义为:
@property (nonatomic, getter=isSelected) BOOL selected;
我的存根看起来像这样:
[[[button stub] andReturnValue:OCMOCK_VALUE(TRUE)] isSelected];
运行测试时收到以下错误:
Return value does not match method signature; signature declares 'c' but value is 'i'.
我认为这与
getter=isSelected
部分有关,但不确定发生了什么可以将这种类型的吸气剂存根吗?
最佳答案
真烦人问题在于,将TRUE
传递给OCMOCK_VALUE
会导致创建整数类型的值。您收到的消息是OCMock表示您想存根的方法/属性是布尔值,但您提供了一个整数的方式。
您可以通过以下任一方式强制创建实际的布尔值:
[[[button stub] andReturnValue:OCMOCK_VALUE((BOOL){TRUE})] isSelected];
[[[button stub] andReturnValue:@YES] isSelected];
顺便说一句,不同的数字类型也会发生类似的问题,但是不幸的是,在OCMock中解决这个问题并不容易。例如,请参见此处:https://github.com/erikdoe/ocmock/pull/58。
关于ios - OCMock stub isSelected属性,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22857313/