我正在尝试在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/

10-12 06:46