在快速测试用例中为单例目标 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 类注入依赖项的主要内容,如果未能解决你的问题,请参考以下文章

Laravel PhpUnit 依赖注入

测试用例中的细节

如何为具有属性依赖项的 Spring Boot Application 类编写测试用例 - 无法解析占位符

testNG 使用功能详解

在 Xcode 8.3.2 的 UI 测试用例中转换为当前的快速语法“无法调用非函数类型‘XCUIElement’的值”时出错

从 JUnit 测试用例中找不到资源文件