erikdoe / ocmock

Mock objects for Objective-C
http://ocmock.org
Apache License 2.0
2.16k stars 606 forks source link

OCMock 3: Text field mocking fails in strange ways #127

Open patrickhartling opened 10 years ago

patrickhartling commented 10 years ago

I encountered an unexpected problem where simply creating a partial mock of an instance of UITextField contained within an other object results in this error if ‑resignFirstResponder is sent to the UITextField object:

-[OCMockTextFieldTest testCreateMock] failed: -[UITextInputTraits resignFirstResponder]: unrecognized selector sent to instance 0x102b05ba0

That was produced by running the test class I created to show the issue. I don't know the significance of this, but if the test method is written as follows, no error occurs:

- (void)testCreateMock
{
    UITextField *const textField = [UITextField new];
    id mockObject = OCMPartialMock(textField);
    [textField resignFirstResponder];
}
erikdoe commented 10 years ago

With the recent changes made in response to some of the other issues reported this problem seems to have been fixed, too. Could you retry whether it works for you now?

patrickhartling commented 10 years ago

This issue still happens as of 8d323b34b173f1f02e5772c6f4f3b4d4c1466dfd.

rex-remind101 commented 9 years ago

+1

realf commented 8 years ago

+1

jakunico commented 8 years ago

+1

PatrickNLT commented 8 years ago

It may be an issue with UITextField not being KVC-compliant. See http://stackoverflow.com/questions/6617472/why-does-valueforkey-on-a-uitextfield-throws-an-exception-for-uitextinputtraits for more details.