问题标签 [ocmock]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
objective-c - 对 NSURLConnection 委托进行单元测试:伪造连接
我正在编写一个天气应用程序,我创建了一种天气模型,它可以执行所有计算、获取数据等。在创建 ViewControllers 之前,我想为我的模型编写一些单元测试以确保一切正常正常工作(正在以预期的格式获取天气,天气正在正确刷新等)。
现在我很想充满信心地进行单元测试并测试平等,例如:
...但是,唉,大自然的变化如此之快。另外,(并纠正我的问题),我认为我在进行单元测试时无法连接到 Internet(...?)(无论如何,这并不重要。)
所以,我在我最喜欢的网站上搜索,发现了这个问题:如何对 NSURLConnection 委托进行单元测试?
它提供了很多信息,但现在我有一个问题。当我调用一个调用 NSURLConnection 委托方法的方法时,例如:
...我如何提供模型(即实现 NSURLConnection 委托方法的 myBeautifulWeatherModel)数据?当模型在这个委托方法中接收到它的数据时,它会做一些 JSON 解析:
我的第一个想法是获取 Wunderground 发回的 JSON 数据,然后更改一些键,使它们与预期数据匹配并输入。但问题是我将如何输入该响应?
我知道 NSURLConnection 将调用 3 个必需的委托方法。我觉得我需要“伪造”以下内容:
但同样,我对如何输入它并让这个模型认为它连接到互联网有点困惑。
objective-c - 你如何使用 OCMock for iOS 模拟私有属性?
我有一个在要测试的类的 .m 文件中声明的私有属性,我们称之为 ClassUnderTest。ClassUnderTest 实例化 ClassToBeMocked 的一个实例。如何使用 OCMock 模拟 ClassToBeMocked 的实例并将其分配给 ClassUnderTest?
objective-c - OCMock:不包括可选方法的模拟协议
我正在使用 OCMock 在我的 iOS 应用程序测试中创建模拟,并且我想创建不实现所有可选方法的协议模拟。
如果不清楚我的意思......这里有一些代码:
objective-c-blocks - 带有块参数的存根方法
我正在尝试对具有块参数的方法进行存根。
该块属于简单类型。
执行后我收到以下错误:
似乎块参数与[OCMArg any]
. 任何提示如何存根此方法?
objective-c - 如何在 ARC 中从 id __autoreleasing * 转换为 void **?
我正在尝试从 id __autoreleasing * 转换为 CFTypeRef * (void **)。
我试过了:
但是当自动释放池耗尽时,代码会崩溃。
在 ARC 环境中如何转换为 void**?
objective-c - 为什么我不能直接将 int 或 bool 传递给 OCMock 的“andReturnValue”参数?
我试图做:
但这给了我这个警告/错误“不兼容的整数指针转换将'BOOL'(又名'signed char')发送到'NSValue *'类型的参数”
我能想出解决它的唯一方法是:
但这让我的测试代码显得过于冗长。有没有办法在不需要设置变量的情况下内联完成这一切?
objective-c - 单元测试 UITextField 上的操作
我有一个简单的 if 条件,当满足时,添加一个目标以在点击“完成”时放下键盘
我在 iOS5 上使用 OCMock 和 OCUnit。如何创建一个单元测试,允许我传递一个简单的UITextField
输入并模拟点击它上的完成按钮以验证resignFirstResponder
是否发生(或不发生)?
frameworks - 将 OCMock 添加到框架
先介绍一下背景,我目前正在为一个通用框架编写一些 ocunit 测试,现在需要添加 OCMock 来测试框架的一些网络方面。我已按照此处的 OCMock 说明下载示例项目作为参考。我在构建阶段将 libOCMock.a 添加到 Link Binary with Libraries 中,并将标头位置添加到标头搜索路径并将链接器标志设置为
- 运行测试时收到的错误消息如下:
ld: 73 duplicate symbols for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
任何帮助将不胜感激
objective-c - 通过 OCMock 存根覆盖方法
我正在尝试测试完成关卡后计时器对象是否停止。我有以下代码:
...
prepareLevel 方法重置计时器值并在其上调用“start” --- 所以为了测试advanceLevel 实际停止计时器,我需要覆盖prepareLevel 方法。
所以在我的单元测试中,我做了以下事情:
这导致 XCode 说“testItStopsTheTimer(Gametests)失败。最终出现在 Game-0x12383060 的子类转发器中......”
那么,是不是不可能把现有的方法存根,然后用虚无来代替呢?
ios - 是否可以在静态方法中 OCMock 类调用?
我刚刚开始使用 OCMock,所以请耐心等待 - 我一直在查看文档和大量示例,但还没有找到明确的答案 - 是否可以在静态方法中模拟 init 调用,例如:
是否可以在不更改代码的情况下模拟 CTTeleInfo 对象?