菜鸟教程小白 发表于 2022-12-12 18:24:56

ios - 是否可以使用 OCMock stub NSProcessInfo?


                                            <p><p>我想 stub<code>[ operatingSystemVersion]</code> 以获取任何操作系统版本。</p>

<pre><code>id processInfoMock = OCMClassMock();
) andReturnValue:NULL];
NSOperatingSystemVersion osVersion = [ operatingSystemVersion];
</code></pre>

<p>但返回的是 iOS 模拟器的操作系统版本。是否可以 stubNSProcessInfo 方法?而且, stubFoundation 的类(class)是否合适?</p>

<hr/>

<p>[更新]
在 Erik 的建议下,问题解决了。我需要 stub<code>processInfo</code> 类方法以返回 NSProcessInfo 的模拟实例。这是测试通过的代码:</p>

<pre><code>// Prepare fakeVersion instead of NULL.
NSOperatingSystemVersion fakeVersion = {0,0,0};
// Mock NSProcessInfo.
id processInfoMock = OCMClassMock();
// Stub processInfo class method to return the mock instance.
) andReturn:processInfoMock];
// Stub operatingSystemVersion instance method to return fakeVersion.
) andReturnValue:OCMOCK_VALUE(fakeVersion)];

// Another solution using OCMPartialMock.
// Partial mock for NSProcessInfo instance.
id processInfo = ;
id processInfoPartialMock = OCMPartialMock(processInfo);
// Stub operatingSystemVersion instance method to return fakeVersion.
) andReturnValue:OCMOCK_VALUE(fakeVersion)];
</code></pre></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>您必须通过 stub<code>processInfo</code> 类方法来确保实际使用了模拟。这显示在 OCMock 网站首页上标题为“为实例和类方法创建 stub ”的部分中。</p>

<p>顺便说一句,为什么要混合不同的句法风格?为什么不直接写</p>

<pre><code>OCMStub().andReturn(NULL);
</code></pre></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 是否可以使用 OCMockstubNSProcessInfo?,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/35144522/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/35144522/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 是否可以使用 OCMock stub NSProcessInfo?