簡體   English   中英

你如何使用OCMock for iOS模擬私有屬性?

[英]How do you mock out private properties with OCMock for iOS?

我有一個在我的類的.m文件中聲明的私有屬性,我們稱之為ClassUnderTest。 ClassUnderTest實例化ClassToBeMocked的實例。 如何使用OCMock模擬ClassToBeMocked的實例並將其分配給ClassUnderTest?

在測試類中重新聲明屬性。 您可以對私有方法執行相同操作。 在ClassUnderTestTest.m中:

@interface ClassUnderTest ()

@property(retain)ClassToBeMocked *instanceToBeMocked;

-(void)somePrivateMethod;

@end

以下工作如何?

id classUnderTest = ... // get from somewhere
id mock = [OCMockObject mockForClass:[ClassToBeMocked class]];
[classUnderTest setValue:mock forKey:@"nameOfThatPrivateProperty"];

不完全確定您是否可以設置這樣的私有屬性。 我認為這取決於它是什么類型的財產。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM