gpt4 book ai didi

objective-c - 我可以使用 OCMock 来测试父类(super class)是否被调用吗?

转载 作者:太空狗 更新时间:2023-10-30 04:02:04 24 4
gpt4 key购买 nike

我做了一个 MKMapView 的子类。在单元测试中,我想知道当我调用这个子类的某个方法时,调用了相应的 MKMapView 方法以及参数的类。我可以使用 OCMock 来实现吗?

编辑:

我接受了这个答案,但我想澄清一下,我的问题是什么时候父类(super class)不能直接替代单元测试(显然是这样,因为继承就是这样工作的)。而且似乎 OCMock 和 OCMockito 都只能用于注入(inject)被测类的对象。所以基本上,我认为我需要诉诸手动调整它们。

最佳答案

为了回答这个问题,让我们花点时间看看 OCMock 和类似框架是如何工作的:

模拟框架使用 Objective-C runtime proxywrap 原始类,以便对该类的任何方法调用都被重定向到 mocking 框架,该框架有一组预先记录的关于什么的指令调用给定方法时执行的操作。

因此,答案是,是的,当你模拟一个类时,你也在隐式地模拟父类(super class)上的方法。您可以记录此方法将被调用的预期并验证是否发生了这种情况。您还可以验证提供的参数。

为了有效地使用模拟框架,没有必要了解细节,但是如果您有兴趣探索一些代理类的方法,请查看以下内容:

顺便说一句,我个人最喜欢的模拟框架是 OCMockito

关于objective-c - 我可以使用 OCMock 来测试父类(super class)是否被调用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19740009/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com