Why is my object's weak delegate property nil in my unit tests?

前端 未结 4 1082
既然无缘
既然无缘 2020-12-31 07:54

I have a pretty simple setup for this unit test. I have a class that has a delegate property:

@interface MyClass : NSObject
...
@property (nonatomic, weak) i         


        
4条回答
  •  无人及你
    2020-12-31 08:24

    I don't really know what's happening here, but OCMock returns an autoreleased NSProxy-descendant from the mockForProtocol: method, which I think is right. Maybe ARC has problems with NSProxies? Anyway, I've overcome this problem by declaring the variable __weak:

    - (void)testMyMethod_WithDelegate {
      // maybe you'll also need this modifier inside the helper
      __weak id delegate = mockDelegateHelper(); 
      ...
    

    It really doesn't need to be __strong (the default) in this case, as it's autoreleased and you're not keeping it around...

提交回复
热议问题