在快速测试用例中为单例目标 c 类注入依赖项

Posted

技术标签:

【中文标题】在快速测试用例中为单例目标 c 类注入依赖项【英文标题】:Inject dependency for singleton objective c class in swift test cases 【发布时间】:2017-03-14 13:00:12 【问题描述】:

我有一个用 Objective C 编写的单例类,它被用在辅助类中,它也是用 Objective C 编写的。我正在为辅助类编写一个测试用例,但我没有直接对单例类方法进行更改,而是想创建一个模拟单例类,但我不知道该怎么做。我不想对辅助类进行任何更改,例如创建一个 init 方法,该方法采用单例类对象并对其进行初始化,就像在其他线程中提到的单例类测试用例一样。

感谢您查看问题。

【问题讨论】:

你说,“我不想在助手类中做任何改变”。我不是这方面的专家,但我认为你在这个限制下让你的工作变得比必要的更难。 我的意思是这将是我最后的解决方案,但我正在寻找是否有更好的方法来做到这一点。 【参考方案1】:

您可以使用 OCMock 在您的项目中模拟对象OCMock

然后你可以像这样模拟你的单例

YOUR_SINGLETON *mock = OCMClassMock([YOUR_SINGLETON class]);

还有像这样的存根函数

OCMStub([(id) mock YOUR_FUNCTION:PARAMETER]).andReturn(VALUE_FOR_TEST_CASE);

【讨论】:

谢谢,但不寻找任何第三方解决方案。

以上是关于在快速测试用例中为单例目标 c 类注入依赖项的主要内容,如果未能解决你的问题,请参考以下文章