This is annoying. The problem is that passing TRUE
to OCMOCK_VALUE
results in the creation of a value of type integer. The message you get is OCMock's way of saying that the method/property you want to stub is a boolean but you provided an integer.
You can force the creation of a an actual boolean value with either of the following:
[[[button stub] andReturnValue:OCMOCK_VALUE((BOOL){TRUE})] isSelected];
[[[button stub] andReturnValue:@YES] isSelected];
By the way, a similar problem occurs with different number types but unfortunately fixing this in OCMock isn't trivial. See here for example: https://github.com/erikdoe/ocmock/pull/58.